OFFLINE
Awaiting data
Security intelligence
MajorCritical vulnerability

CVE-2026-59990: Jawn: Uncontrolled nesting depth in JSON parser

GitHub Advisories · officialPublished Sep 23, 2026Risk 37/100

The Jawn parser before 1.6.1 is vulnerable to a denial of service attack via untrusted input. ### Impact A remote attacker who can submit JSON to any jawn-backed parse method can exhaust JVM heap and trigger `java.lang.OutOfMemoryError`. This is treated by Scala as a fatal error and not typically handled by `scala.util.Try` or `cats.effect.IO`. ### Patches Version `1.6.1` introduces a configurable nesting-depth limit (`Parser#maxDepth`, default `4096`). Inputs deeper than the limit fail with a recoverable `ParseException` instead of exhausting heap. Users who require deeper nesting may override `maxDepth` on a `Parser` subclass. ### Workarounds - Enforce an input size limit small enough that the resulting context stack cannot exhaust heap, (e.g. http4s `EntityLimiter`). - Pre-scan untrusted input and reject documents whose maximum delimiter nesting exceeds a threshold before handing them to jawn.

Upgrade affected packages to a patched version: org.typelevel:jawn-parser_2.12 1.7.0, org.typelevel:jawn-parser_2.13 1.7.0, org.typelevel:jawn-parser_3 1.7.0.

Vendor
Not specified
Product
org.typelevel:jawn-parser_2.12, org.typelevel:jawn-parser_2.13, org.typelevel:jawn-parser_3
Exploitation
none known
Evidence
official
CVSS
7.5

This record is attributed to GitHub Advisories. Exploitation status and remediation guidance are kept separate from the vulnerability's technical severity.

Open primary source