Skip to main content

Coraza WAF CVE-2026-114100

| EUVDEUVD-2026-106903 MEDIUM
Improper Input Validation (CWE-20)
2026-10-21 VulnCheck GHSA-5846-6v99-476c
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send POST with charset parameter on urlencoded Content-Type
  2. Exploit
    Coraza exact-match selects no body processor
  3. Execution
    ARGS_POST and REQUEST_BODY remain empty
  4. Impact
    Malicious body reaches backend uninspected

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires that the Coraza deployment rely on custom rules inspecting ARGS_POST or REQUEST_BODY to catch malicious payloads, and that a client send a valid urlencoded body with any media-type parameter (e.g. 'application/x-www-form-urlencoded; charset=UTF-8'); the backend must still parse the forwarded body. The decisive LIMITING factor is that the current OWASP CRS bundles rule 901340, which forces fallback inspection and neutralizes this bypass - so sites running an unmodified modern CRS are not affected, and only setups with custom body rules or CRS lacking 901340 are exposed. No authentication or user interaction is needed (PR:N/UI:N), and it works against default parsing behavior of the affected versions.

Impact

This is a genuine but moderate-priority WAF evasion issue, not a critical server compromise. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms it is remotely reachable by unauthenticated attackers with low complexity against default parsing behavior, but the impact metrics are deliberately limited to VI:L and SI:L (no confidentiality or availability impact), yielding a Medium 6.9 - which matches the vendor's own 'suggested severity: Medium'. The real risk is contextual: Coraza does not itself execute attacker code; the flaw only hides a request body from inspection, so actual harm depends entirely on whether the protected backend is independently vulnerable to whatever payload slips through. No EPSS score, no CISA KEV listing, and no explicit POC flag are present in the input, so there is no signal of active or probable exploitation - this appears to be a vendor/researcher-disclosed hardening issue (reported by VulnCheck) rather than an observed attack. Critically, the vendor states the current OWASP CRS ships rule 901340 that forces fallback inspection and mitigates this path, so sites running an unmodified modern CRS are NOT bypassed; the exposure is specific to deployments relying on custom ARGS_POST/REQUEST_BODY rules. Bottom line: patch in routine cycles - this is a defense-in-depth bypass, not a directly exploitable high-risk flaw.

Exploit ScenarioDerived

An unauthenticated attacker targeting a backend protected by Coraza with custom body-inspection rules sends a POST with Content-Type 'application/x-www-form-urlencoded; charset=UTF-8'. Because Coraza's exact-match processor selection ignores the request due to the charset parameter, ARGS_POST and REQUEST_BODY stay empty and the body (e.g. SQLi/XSS/command-injection parameters) is never evaluated, yet the Go middleware forwards it and the backend parses it normally. No public exploit is identified in the input, but the advisory documents the exact deterministic technique, making reproduction trivial.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Request body inspection bypass in Coraza WAF versions 3.0.4 through 3.8.0 allows unauthenticated remote attackers to evade custom body rules by sending a valid URL-encoded form body with a Content-Type parameter such as 'application/x-www-form-urlencoded; charset=UTF-8', leaving ARGS_POST and REQUEST_BODY empty while the backend still parses the payload. This is a moderate-priority WAF evasion issue rather than a server compromise; deployments that rely on custom ARGS_POST or REQUEST_BODY rules are exposed, while an unmodified current OWASP CRS with rule 901340 forces fallback inspection and neutralizes the bypass. No public exploit identified at time of analysis; vendor-released patch: 3.8.1.

RemediationAI

Upgrade Coraza to 3.8.1 or later; the vendor-released patch is 3.8.1, with upstream commits 3b6241ef895b089c66a59e51068a81cf40986e4d and a55950ffa161f33a29e14f87d926d7df3b85cc74, and details are in advisory GHSA-w253-m66g-rx24. If immediate upgrade is not possible, ensure the current OWASP CRS ruleset is deployed and rule 901340 is active, since it forces fallback inspection and mitigates this bypass; the trade-off is dependence on CRS version and rule coverage. For deployments using custom rules that inspect ARGS_POST or REQUEST_BODY, add a compensating normalization or rejection rule for URL-encoded Content-Type values containing media-type parameters such as a semicolon, or inspect the raw request body through an external processor; test carefully because legitimate clients may send charset parameters, and rejecting such headers can break valid traffic.

Affected VersionsENISA

coraza 3.0.4 <3.8.1

Affected Packages

go github.com/corazawaf/coraza no fix
go github.com/corazawaf/coraza/v2 no fix
go github.com/corazawaf/coraza/v3 fix: 3.8.1
euvd coraza fix: 3.8.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Coraza is a Go-based Web Application Firewall library, and the flaw is in request-body processor selection in internal/corazawaf/transaction.go. The AddRequestHeader logic lowercases the entire Content-Type value and checks exact equality with 'application/x-www-form-urlencoded'; because media-type parameters are legal and 'charset=UTF-8' is a parameter rather than part of the media type, the equality check fails and REQBODY_PROCESSOR remains empty. ProcessRequestBody treats an empty processor as success, evaluates phase 2 without parsing the body, and does not set REQBODY_ERROR, so the URL-encoded processor never populates ARGS_POST, REQUEST_BODY, or REQUEST_BODY_LENGTH. The root cause is CWE-20 improper input validation of the Content-Type media type. The affected Go module is go/github.com/corazawaf/coraza/v3, vulnerable from 3.0.4 before 3.8.1, corresponding to CPE cpe:2.3:a:corazawaf:coraza. Current OWASP CRS rule 901340 forces fallback inspection and mitigates this specific path.

Know when Coraza gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
vuln.today AI 5.3 MEDIUM

Remote, unauthenticated, low-complexity bypass (AV:N/AC:L/PR:N/UI:N); only integrity is affected (I:L) as a security control is evaded with no direct confidentiality or availability loss.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 21, 2026 - 02:01 EUVD

DescriptionCVE.org

Coraza from 3.0.4 before 3.8.1 contains a request body inspection bypass because request-body processor selection compares the entire Content-Type value exactly, so URL-encoded bodies whose Content-Type carries a media-type parameter are never parsed. Unauthenticated attackers can send application/x-www-form-urlencoded; charset=UTF-8 to keep ARGS_POST and REQUEST_BODY empty, evading body rules while the backend still processes the payload.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
popular OWASP Go WAF library, but niche vs mainstream WAFs
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Related Vulnerabilities in Coraza WAF Request Body Inspection Bypasses

View all 3

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy