CVE-2026-59990
Jawn: Uncontrolled nesting depth in JSON parser
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Jawn: Uncontrolled nesting depth in JSON parser
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
- Record
CVE-2026-59990- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-85554
7.5
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
- Record
EUVD-2026-85554- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-cc4v-rvgp-2pf3
7.5
Jawn: Uncontrolled nesting depth in JSON parser
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.
- Record
GHSA-cc4v-rvgp-2pf3- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
NVD
7.5
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
- Record
CVE-2026-59990- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
7.5
Jawn: Uncontrolled nesting depth in JSON parser
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
- Record
CVE-2026-59990- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-59990
7.5
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
- Record
DEBIAN-CVE-2026-59990- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-cc4v-rvgp-2pf3
7.5
Jawn: Uncontrolled nesting depth in JSON parser
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.
- Record
GHSA-cc4v-rvgp-2pf3- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-59990
7.5
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn parse methods accept arbitrarily deep JSON array and object nesting without a depth limit, allowing a remote attacker who can submit untrusted JSON to grow parser contexts until the JVM heap is exhausted. The resulting java.lang.OutOfMemoryError is a fatal Scala error that is not ordinarily handled by scala.util.Try or cats.effect.IO, causing denial of service. This issue is fixed in version 1.7.0.
- Record
UBUNTU-CVE-2026-59990- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.typelevel:jawn-parser_2.12Maven |
through 1.6.0 | 1.7.0 |
org.typelevel:jawn-parser_2.13Maven |
through 1.6.0 | 1.7.0 |
org.typelevel:jawn-parser_3Maven |
through 1.6.0 | 1.7.0 |
jawnDebian:12 |
All versions, plus listed versions 0.11.1+really0.6.0-1 |
None known |
jawnDebian:13 |
All versions, plus listed versions 0.11.1+really0.6.0-1 |
None known |
jawnDebian:14 |
All versions, plus listed versions 0.11.1+really0.6.0-1 |
None known |
org.typelevel:jawn-parser_2.12Maven |
before 1.7.0, plus listed versions 0.14.00.14.10.14.20.14.31.0.0 Show 18 moreShow less1.0.0-RC11.0.0-RC21.0.0-RC31.0.0-RC41.0.11.0.21.0.31.1.01.1.11.1.21.2.01.3.01.3.11.3.21.4.01.5.01.5.11.6.0 |
1.7.0 |
org.typelevel:jawn-parser_2.13Maven |
before 1.7.0, plus listed versions 0.14.20.14.31.0.01.0.0-RC11.0.0-RC2 Show 16 moreShow less1.0.0-RC31.0.0-RC41.0.11.0.21.0.31.1.01.1.11.1.21.2.01.3.01.3.11.3.21.4.01.5.01.5.11.6.0 |
1.7.0 |
org.typelevel:jawn-parser_3Maven |
before 1.7.0, plus listed versions 1.1.21.2.01.3.01.3.11.3.2 Show 4 moreShow less1.4.01.5.01.5.11.6.0 |
1.7.0 |
jawnUbuntu:20.04:LTS |
All versions, plus listed versions 0.11.1+really0.6.0-1 |
None known |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
jawnUbuntu:22.04:LTS |
All versions, plus listed versions 0.11.1+really0.6.0-1 |
None known |
jawnUbuntu:24.04:LTS |
All versions, plus listed versions 0.11.1+really0.6.0-1 |
None known |
jawnUbuntu:26.10 |
All versions, plus listed versions 0.11.1+really0.6.0-1build1 |
None known |
jawnUbuntu:26.04:LTS |
All versions, plus listed versions 0.11.1+really0.6.0-10.11.1+really0.6.0-1build1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-59990 is a high vulnerability (CVSS 7.5) in Typelevel Jawn, published September 23, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.61%, the 49th percentile. Fixed in org.typelevel:jawn-parser_2.12 1.7.0.
References
github.com/typelevel/jawn/security/advisories/GHSA-cc4v-rvgp-2pf3
github.com/typelevel/jawn/commit/191cb3a44e77f1afab439ee636bf66bdf3c54a04
github.com/typelevel/jawn/commit/6219666641f9408498f85868f835e17bd8a72fed
github.com/typelevel/jawn/commit/93ac93e9c992c11b4c03d5455d8551f9fb24da1b
github.com/typelevel/jawn/commit/f6ace7e0db715de1a8c4618bed9378333a5c2214
github.com/typelevel/jawn/releases/tag/v1.7.0
Show 7 moreShow less
github.com/advisories/GHSA-cc4v-rvgp-2pf3
github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59990.json
nvd.nist.gov/vuln/detail/CVE-2026-59990
security-tracker.debian.org/tracker/CVE-2026-59990
github.com/typelevel/jawn
ubuntu.com/security/CVE-2026-59990
cve.org/CVERecord?id=CVE-2026-59990