支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:752

75.2%
一、 漏洞 CVE-2026-21876 基础信息
漏洞信息
                                        # OWASP CRS 多Content-Type绕过漏洞

## 概述
OWASP核心规则集(CRS)在处理具有多个部分的multipart请求时,规则922110存在逻辑缺陷,导致部分恶意内容可能被漏检。

## 影响版本
- 3.3.8 之前版本
- 4.22.0 之前版本

## 细节
规则922110在处理multipart请求时,会遍历`MULTIPART_PART_HEADERS`等集合。在遍历过程中,捕获变量(如`TX:0`、`TX:1`)在每次迭代中被覆盖,仅最后一次捕获的值可供后续链式规则使用。因此,若前面部分包含恶意charset,而后续部分包含合法charset,则恶意内容可能因变量被覆盖而未被检测。

## 影响
攻击者可利用此漏洞构造恶意multipart请求,隐藏非法字符编码于前置部分,绕过WAF检测,可能导致Web应用遭受注入等攻击。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
OWASP CRS has multipart bypass using multiple content-type parts
来源:美国国家漏洞数据库 NVD
漏洞描述信息
The OWASP core rule set (CRS) is a set of generic attack detection rules for use with compatible web application firewalls. Prior to versions 4.22.0 and 3.3.8, the current rule 922110 has a bug when processing multipart requests with multiple parts. When the first rule in a chain iterates over a collection (like `MULTIPART_PART_HEADERS`), the capture variables (`TX:0`, `TX:1`) get overwritten with each iteration. Only the last captured value is available to the chained rule, which means malicious charsets in earlier parts can be missed if a later part has a legitimate charset. Versions 4.22.0 and 3.3.8 patch the issue.
来源:美国国家漏洞数据库 NVD
CVSS信息
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N
来源:美国国家漏洞数据库 NVD
漏洞类别
对特殊元素的多个实例的过滤不完全
来源:美国国家漏洞数据库 NVD
漏洞标题
OWASP CRS 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
OWASP CRS是CRS Project开源的一套攻击检测规则集。 OWASP CRS 4.22.0之前版本和3.3.8之前版本存在安全漏洞,该漏洞源于处理多部分请求时规则922110存在缺陷,可能导致恶意字符集被忽略。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2026-21876 的公开POC
#POC 描述源链接神龙链接
1CVE-2026-21876 OWASP ModSecurity CRS WAF bypass (docker container + minimal PoC).https://github.com/daytriftnewgen/CVE-2026-21876POC详情
三、漏洞 CVE-2026-21876 的情报信息
  • 标题: Release v3.3.8 · coreruleset/coreruleset · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            从这个网页截图中,我们可以获取到以下关于漏洞的关键信息:
    
    - **漏洞编号**: 9AJ-260102
    - **修复版本**: v3.3.8
    - **修复提交**: 位于 `coreuleset` 仓库的 `v3.3.8` 版本中,具体提交可查看 `80d8047`.
    - **修复人员**: `@airween`
    - **漏洞报告者**: `@daytriftnewgen`
    - **修复内容**: 
      - 紧急修复了漏洞编号为 `9AJ-260102` 的问题.
      - 解决了规则阶段从 `950100` 转换为 `3` 的问题.
    
    ```markdown
    ### 关键漏洞信息
    
    - **漏洞编号**: 9AJ-260102
    - **修复版本**: v3.3.8
    - **修复提交**: [提交链接](80d8047)
    - **修复人员**: @airween
    - **漏洞报告者**: @daytriftnewgen
    - **修复内容**:
      - 紧急修复了编号为 `9AJ-260102` 的问题.
      - 解决了规则阶段从 `950100` 转换为 `3` 的问题.
    ```
                                            
    Release v3.3.8 · coreruleset/coreruleset · GitHub
  • 标题: Release v4.22.0 · coreruleset/coreruleset · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ## 关键漏洞信息
    
    ### CRITICAL
    - 修复了 CVE-2025-55188 漏洞。特别感谢 @daytriftnewgen 负责任地报告了该漏洞。
    
    ### Other Changes
    - 添加了 CVE-2025-55188 的序列,POCs 由 @touchweb-vincent 提供(在 #4372 中)
    - 解决了与数组在 ARGS_NAMES 中导致的误报(由 @touchweb-vincent 在 #4346 中修复)
    - 解决了与数组在 ARGS_NAMES 中导致的误报(由 @touchweb-vincent 在 #4305 中修复)
    - 修复了 Rust 中的正则表达式兼容性问题(由 @fgsch 在 #4385 中修复)
    - 遗弃了旧的拼写变体(由 @fgsch 在 #4386 中进行重构)
    
    ### 版本
    - v4.22.0
    
    ### 发布日期
    - 2周前
    
    ### 贡献者
    - fgsch
    - touchweb-vincent
    - daytriftnewgen
                                            
    Release v4.22.0 · coreruleset/coreruleset · GitHub
  • 标题: Multipart bypass using multiple content-type parts · Advisory · coreruleset/coreruleset · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ## 关键漏洞信息
    
    ### 漏洞描述
    - **漏洞名称**: Multipart bypass using multiple content-type parts
    - **CVE ID**: CVE-2026-21876
    - **严重性**: Critical (CVSS v3 base score: 9.3)
    - **受影响版本**: 
      - OWASP CRS (CRS) <= 4.22.0
      - OWASP CRS (CRS) <= 3.3.8
    
    ### 影响
    - **描述**: 当处理具有多个部分的multipart请求时,规则922110存在一个漏洞。在迭代MULTIPART_PART_HEADERS等集合时,每个迭代都会覆盖捕获变量(TX:0, TX:1),导致后续规则只能访问最后一次捕获的值,从而可能导致恶意字符集在早期部分被忽略。
    
    ### 示例漏洞场景
    - **Part 1 (username)**: charset=utf-7 (malicious) → captured to TX:1
    - **Part 2 (dummy)**: charset=utf-8 (legitimate) → overwrites TX:1
    - **Chained rule checks**: TX:1 = "utf-8" → passes ✗ (should have blocked)
    
    ### 修复
    - **修复版本**:
      - CRS 4.x >= 4.22.0
      - CRS 3.x >= 3.3.8
    
    ### 参考
    - **参考文献**: To be added
                                            
    Multipart bypass using multiple content-type parts · Advisory · coreruleset/coreruleset · GitHub
  • 标题: Merge commit from fork · coreruleset/coreruleset@80d8047 · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    Merge commit from fork · coreruleset/coreruleset@80d8047 · GitHub
  • 标题: Merge commit from fork · coreruleset/coreruleset@9917985 · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            # 关键漏洞信息
    
    - **漏洞类型**: multipart bypass 使用多个内容类型部分的安全规则更新
    - **受影响版本**: v4.22.0
    - **修复提交**: [9917985](#commit 9917985)
    - **规则更改**:
      - 添加规则 `922140` 和 `922150`,用于处理 multipart 请求头,收集 Content-Type 和 charset 值,并检查这些值。
      - 规则 `922110` 检查收集的头的 content type 和 charset,检测非法的 multipart header。
      - `MULTIPART_HEADERS_CONTENT_TYPES` 变量用于存储 content types。
    
    - **更新原因**:
      - 修复 multipart 绕过漏洞,通过更多内容类型部分的检查来增强安全性。
    
    - **相关文件**:
      - 规则文件: `REQUEST-922-MULTIPART-ATTACK.conf`
      - 测试用例: `test/regession/test.../922110.yaml`
      - 辅助工具: 使用 regex-assembly 更新正则表达式
    
    - **关键变更点**:
      - 单独识别每个 multipart 部分的 header,获取准确的 content type 和 charset。
      - 对 multipart 请求头增加更严格的检查机制。
    
    - **安全建议**:
      - 检查现有 multipart 请求中的 header,防止非法自定义 header。
      - 根据这些规则更新安全策略。
      - 跟踪 RFC 和协议更新,避免使用已废弃的 Content-Transfer-Encoding。
                                            
    Merge commit from fork · coreruleset/coreruleset@9917985 · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-21876
四、漏洞 CVE-2026-21876 的评论

暂无评论


发表评论