CVE-2026-107825: OWASP Coraza WAF query string bypass on malformed URI

CVE-2026-107825 · Severity: medium · CVSS 4 · Published 2026-10-09

OWASP Coraza is a web application firewall library that inspects HTTP requests to block malicious traffic. When Coraza receives a URI with invalid control characters, it fails to parse the query string and leaves it empty, allowing attackers to bypass security rules that would normally catch attacks in URL parameters. This vulnerability only affects integrations that bypass Go's standard HTTP library, such as Envoy proxy plugins and WASM hosts.

Technologies: github.com/corazawaf/coraza (Go), github.com/corazawaf/coraza/v2 (Go), github.com/corazawaf/coraza/v3 (Go). Vendors: Go, OWASP.

Quick answers

Is CVE-2026-107825 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107825 being exploited in the wild.
How severe is CVE-2026-107825?
Medium severity, with a CVSS score of 4, published 9 October 2026.
Which products and versions are affected?
github.com/corazawaf/coraza (Go) SEMVER:introduced=0; github.com/corazawaf/coraza/v2 (Go) SEMVER:introduced=0; github.com/corazawaf/coraza/v3 (Go) SEMVER:introduced=3.0.0,fixed=3.8.0; OWASP Coraza 3.0.0 through 3.7.0.
Is there a fix for CVE-2026-107825?
Yes. github.com/corazawaf/coraza/v3 (Go): upgrade to 3.8.0 or later. Until then: Enable SecRuleEngine to activate default rule 200009, which rejects requests with unparseable URIs. Integrations using net/http are automatically protected by Go's built-in HTTP request validation. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107825 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-107825?
Check whether you run github.com/corazawaf/coraza (Go), github.com/corazawaf/coraza/v2 (Go), github.com/corazawaf/coraza/v3 (Go) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/corazawaf/coraza/v3 (Go): upgrade to 3.8.0 or later
    go get github.com/corazawaf/coraza/v3@v3.8.0

Enable SecRuleEngine to activate default rule 200009, which rejects requests with unparseable URIs. Integrations using net/http are automatically protected by Go's built-in HTTP request validation.

Technical details

ProcessURI in internal/corazawaf/transaction.go silently drops QUERY_STRING, ARGS_GET, ARGS_GET_NAMES, and GET-derived ARGS when url.ParseRequestURI fails on control bytes (NUL, CR/LF, tab). Non-net/http integrations (coraza-spoa, coraza-proxy-wasm, FFI/WASM hosts) can forward malformed URIs directly, leaving query-parameter-targeting rules completely bypassed; the bundled net/http integration is unaffected because Go rejects such URIs with HTTP 400 before Coraza processes them. The fix restores a best-effort fallback that splits on "?" and populates ARGS_GET from the raw tail, and adds URI_PARSE_ERROR variable and default rule 200009 to detect and reject such requests.

Affected products

  • OWASP Coraza 3.0.0 through 3.7.0

Identifiers

  • CVE-2026-107825
  • GHSA-x26q-wvhg-fh4m
  • GO-2026-6699

Timeline

  • 2026-10-09: disclosed
  • 2026-09-30: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.