OWASP CRS漏洞允许攻击者绕过字符集验证
OWASP核心规则集(CRS)中发现了一个严重漏洞,允许攻击者绕过旨在防止基于字符集攻击的重要安全保护措施。
该漏洞编号为CVE-2026-21876,影响规则922110,严重性评分为9.3分(严重级)。
OWASP CRS漏洞详情
规则922110旨在阻止多部分表单请求中的危险字符编码,例如UTF-7和UTF-16。这些编码通常被利用来绕过过滤器并发起跨站脚本(XSS)攻击。
| 方面 | 详情 |
|---|---|
| CVE ID | CVE-2026-21876 |
| 严重性 | 严重 (9.3) |
| CWE | CWE-794 |
| CVSS 评分 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N |
然而,该规则存在一个关键缺陷:它仅验证多部分请求的最后一部分,而忽略前面的部分。攻击者可以利用这一点,将恶意的UTF-7编码的JavaScript放在多部分请求的第一部分,同时在最后一部分放置合法的UTF-8内容。
由于规则只检查最后一部分,使得攻击能够未被察觉地通过。该漏洞影响所有运行CRS版本3.3.x(至3.3.7)和4.0.0至4.21.0的用户。这些版本在全球范围内的Apache ModSecurity v2、ModSecurity v3和Coraza安装中使用。如果没有这种保护,攻击者可以将字符集编码的有效负载直接发送到后端应用程序。
UTF-7 XSS攻击已有充分记录,当它们绕过WAF层时很难防御。这从受影响的系统中移除了一层关键的防御。
用户应采取的措施?
OWASP CRS团队已立即发布补丁:
- CRS 4.x 用户:升级到版本 4.22.0
- CRS 3.3.x 用户:升级到版本 3.3.8
这些修复是向后兼容的,不需要配置更改。用户应尽快升级,并验证修复程序在其系统中是否处于活动状态。
修补后的规则现在使用基于计数器的系统存储和单独验证所有部分,而不是仅检查最后一个多部分。现在检查每个部分的字符集,确保无论位置如何,恶意编码都无法通过。
补丁于2026年1月6日开发并发布,并进行了协调的公开披露。CVE的内部跟踪ID为9AJ-260102。OWASP CRS团队建议所有用户立即采取行动,保护其应用程序免受此关键旁路漏洞的影响。