CVE-2026-21876: CVE-2026-21876: The OWASP core rule set (CRS) is a set of generic attack detection rules for use with comp…
owasp · owasp modsecurity core rule set · NVD published 2026-01-08 · posted 2026-01-25 · last modified 2026-06-17
What it is
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.
| Weakness | CWE-794 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N (source: [email protected]) |
| ATT&CK tactics | n/a |
Exploitation evidence
First exploit evidence seen: 2026-01-25 (earliest date across the sources below).
Exploited in the wild
No source on this site lists in-the-wild exploitation yet (CISA KEV, VulnCheck KEV).
Public exploit code
Exploit-DB
- EDB-52558: coreruleset 4.21.0 - Firewall Bypass (2026-05-13)
GitHub proof-of-concept repositories
3 public repositories from 3 accounts, first seen 2026-01-25. Most starred: daytriftnewgen/CVE-2026-21876 (1 stars), view repository.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: Exploit-DB (OffSec) · nomi-sec/PoC-in-GitHub.
No ATT&CK techniques could be mapped or inferred for this CVE yet.
How to fix it
Fixed versions
- owasp owasp modsecurity core rule set: upgrade to 3.3.8 or later
- owasp owasp modsecurity core rule set: upgrade to 4.22.0 or later (affected from 4.0.0)
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
- https://github.com/coreruleset/coreruleset/commit/80d80473abf71bd49bf6d3c1ab221e3c74e4eb83 (Patch)
- https://github.com/coreruleset/coreruleset/commit/9917985de09a6cf38b3261faf9105e909d67a7d6 (Patch)
- https://github.com/coreruleset/coreruleset/releases/tag/v3.3.8 (Product, Release Notes)
- https://github.com/coreruleset/coreruleset/releases/tag/v4.22.0 (Product, Release Notes)
- https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5 (Exploit, Vendor Advisory)
Detection Generic guidance
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.