V3: Coraza: ProcessURI silently drops QUERY_STRING and ARGS_GET on URI parse failure — defense-in-depth bypass for non-net/http integrations
Description
Coraza v3 before 3.8.0 has a vulnerability in its URI processing logic where malformed URIs containing raw control bytes cause the system to silently drop QUERY_STRING and ARGS_GET variables. This occurs because the URI parsing fails and the fallback logic to extract GET arguments is commented out, resulting in empty GET argument collections. The issue does not affect standard net/http integrations, which reject malformed URIs early, but affects integrations that call ProcessURI directly with unvalidated raw URIs, such as coraza-spoa and coraza-proxy-wasm. This can lead to bypass of OWASP CRS GET-side signature rules that rely on these variables. A fix is available.
CVSS v3.1
Score 4.0medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Coraza v3 (versions >=3.0.0 <3.8.0) arises from the use of Go's url.ParseRequestURI function in the ProcessURI method. When this function returns an error due to raw control bytes in the URI, the fallback code that should extract GET arguments from the raw URI is commented out, causing ARGS_GET and QUERY_STRING variables to be empty. Consequently, rules targeting these variables do not trigger, allowing an attacker to bypass detection when the URI contains control characters. This issue is not present in standard net/http integrations because malformed URIs are rejected with HTTP 400 before ProcessURI is called. However, it affects non-net/http integrations that forward raw URI bytes directly to ProcessURI, such as coraza-spoa (HAProxy SPOP agent) and coraza-proxy-wasm (Envoy WASM filter). The vulnerability has an attack complexity of high due to the need to bypass standard Go HTTP parsing. A patch is available to address this issue.
Potential Impact
Attackers can bypass detection rules that inspect GET parameters and query strings in Coraza integrations that do not use Go's standard net/http parser. Specifically, any rules targeting ARGS_GET, ARGS, ARGS_NAMES, ARGS_GET_NAMES, or QUERY_STRING will not trigger if the URI contains raw control bytes causing the URI parse to fail. This allows malicious payloads to evade OWASP CRS GET-side signature rules, potentially leading to undetected injection or other attacks. The vulnerability does not affect standard net/http deployments, which reject malformed URIs with HTTP 400 responses.
Mitigation Recommendations
A patch is available for Coraza v3 to fix this issue. Users should upgrade to version 3.8.0 or later where the fallback logic for extracting GET arguments on URI parse failure is properly implemented. For non-net/http integrations, ensure that URIs are validated or sanitized before passing to ProcessURI. Standard net/http integrations are not affected and require no additional action.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-x26q-wvhg-fh4m
- Osv Schema Version
- 1.4.0
- Ecosystems
- ["Go"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 3.1
Threat ID: 6ac80fb92cdf04f65639c2b1
Added to database: 10/08/2026, 21:48:41 UTC
Last enriched: 10/08/2026, 22:12:05 UTC
Last updated: 10/08/2026, 22:12:05 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.