CVE-2026-107826: OWASP Coraza WAF stack overflow in JSON body processor

CVE-2026-107826 · Severity: high · CVSS 7.5 · Published 2026-10-09

OWASP Coraza is a web application firewall library that inspects HTTP requests and responses for malicious content. Versions 3.0.0 through 3.8.0 can be crashed by submitting a specially crafted JSON body with deeply nested structure that bypasses input validation limits, causing the process to terminate with a fatal stack overflow and resulting in denial of service.

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

Quick answers

Is CVE-2026-107826 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107826 being exploited in the wild.
How severe is CVE-2026-107826?
High severity, with a CVSS score of 7.5, 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.1; OWASP Coraza WAF 3.0.0 to 3.8.0.
Is there a fix for CVE-2026-107826?
Yes. github.com/corazawaf/coraza/v3 (Go): upgrade to 3.8.1 or later. Until then: Implement an iterative depth pre-scan before gjson.Valid validation to bound JSON nesting, and reject bodies that exceed maxRecursion depth before calling the validation function. This prevents unbounded recursion without requiring upgrades. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107826 attacked?
It is attacked over the network.
Am I affected by CVE-2026-107826?
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.1 or later
    go get github.com/corazawaf/coraza/v3@v3.8.1

Implement an iterative depth pre-scan before gjson.Valid validation to bound JSON nesting, and reject bodies that exceed maxRecursion depth before calling the validation function. This prevents unbounded recursion without requiring upgrades.

Technical details

The readJSON function in internal/bodyprocessors/json.go stops its bounded flattening walk when hitting SecArgumentsLimit or the byte budget, then unconditionally calls gjson.Valid on the complete raw body without a depth limit. An attacker can craft a shallow JSON structure followed by an extremely deeply nested tail to trigger unbounded recursion in gjson.Valid, crashing the hosting process. The vulnerability affects both ProcessRequest and ProcessResponse JSON paths and requires only network access with no authentication; the payload remains within recommended body-size and argument-count limits.

Affected products

  • OWASP Coraza WAF 3.0.0 to 3.8.0

Identifiers

  • CVE-2026-107826
  • GHSA-6gcq-wc29-5xf2
  • GO-2026-6693

Timeline

  • 2026-10-09: disclosed
  • 2026-10-02: patched: v3.8.1 released

References

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