CVE-2026-21876CVE-2026-21876是OWASP Core Rule Set(CRS)中的一个高危安全漏洞,该规则集是一套用于Web应用防火墙(WAF)的通用攻击检测规则。漏洞存在于规则922110中,该规则负责检测HTTP请求中的字符集编码问题。在处理multipart/form-data类型的多部分请求时,当规则链中的第一个规则迭代处理MULTIPART_PART_HEADERS集合时,捕获变量(如TX:0、TX:1)会在每次迭代中被覆盖重写。这意味着只有最后一个捕获的值会被传递给链中的后续规则使用。当攻击者构造一个包含多个部分的multipart请求时,如果前面的部分包含恶意字符集编码,而后继部分包含合法的字符集声明,则恶意部分可能被规则检测系统忽略,从而成功绕过安全防护实现攻击。此漏洞影响OWASP CRS的3.3.8之前和4.22.0之前的版本,CVSS评分高达9.3,属于严重级别。攻击者无需认证即可利用此漏洞通过网络远程发起攻击,对Web应用的安全性构成重大威胁。
OWASP CRS规则922110的设计初衷是检测HTTP请求中可能存在的恶意字符集编码,特别是针对HTTP响应拆分和跨站脚本(XSS)攻击的防护。该规则通过遍历HTTP请求的各个部分来检查Content-Type头中的charset参数。在正常情况下,规则应该检查每个multipart部分的头部信息,并使用TX:0、TX:1等事务变量存储检测结果。然而,由于规则链处理逻辑的缺陷,当第一个规则遍历MULTIPART_PART_HEADERS集合时,捕获变量在每次迭代中都会被新值覆盖,而非累积保存。这导致在后续规则执行时,只能访问到最后一个multipart部分的字符集信息。攻击者可以利用这一特性,在前面的multipart部分中嵌入恶意编码的字符集(如UTF-7、UTF-16等可能触发安全问题的编码方式),而在最后一个部分中使用合法的UTF-8字符集。由于只有最后一个值被检测,恶意部分将被忽略,从而绕过WAF的检测机制。这种攻击方式特别适用于文件上传、邮件附件处理等使用multipart编码的应用场景。