Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach service that streams untrusted JSON to AsyncParser
-
DeliverySend one large JSON token
-
ExploitSplit token across many tiny chunks
-
ExecutionEach absorb rescans token from start (O(n²))
-
ImpactCPU exhausted, service denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application use Jawn's AsyncParser in incremental/streaming mode and feed it attacker-influenced JSON, AND that the attacker control the chunking/framing of that input (e.g., by controlling TCP segmentation or how bytes are delivered) so that a single JSON token is split across many small chunks. The limiting factors are: the app must use AsyncParser rather than a synchronous parse of a complete buffer; the attacker must be able to influence chunk boundaries, not just content; and impact is availability-only (CPU exhaustion), with no data disclosure or modification. Applications that buffer the full request before parsing, or that use synchronous Jawn parsing, are not affected. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) yields 7.5 (HIGH), driven entirely by an availability impact - this is a pure CPU-exhaustion denial-of-service with no confidentiality or integrity effect. No EPSS score, KEV listing, or SSVC decision data was supplied in the input, and there is no weaponized public exploit flag; therefore exploitation status is 'no public exploit identified at time of analysis,' though the vendor fix commit (cddcd5e) ships demonstrative property tests that feed pathological inputs (100k-char strings, 200k-digit numbers) byte-by-byte, which effectively documents how to trigger the flaw. One signal conflicts with the raw score: the description requires the attacker to control not only the JSON content but also its chunk boundaries/framing, and exploitation only manifests when the application uses AsyncParser in streaming mode - these are real preconditions that AC:L (attack complexity low) arguably understates; I lean toward AC:H (~5.9), so the effective real-world risk is somewhat below the 7.5 headline. This is a genuine but bounded DoS issue rather than a critical priority: impact is availability-only, it is patch-driven (no active-exploitation evidence), and the affected component sits in the niche Scala/JVM ecosystem, so prioritize patching for services that stream/chunk untrusted JSON through Jawn AsyncParser (directly or transitively via circe). |
| Exploit ScenarioDerived | An application accepts untrusted JSON over a network connection and feeds it incrementally to Jawn's AsyncParser as bytes arrive. A remote unauthenticated attacker sends a single large JSON token (e.g., a very long string or number) split into many tiny chunks, forcing each absorb() call to rescan the incomplete token from the start and producing O(n²) CPU work that exhausts a core and stalls the service. No weaponized public exploit is provided, but the 1.7.0 fix commit includes property tests demonstrating the exact triggering inputs. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Denial of service in the Jawn JSON parser for Scala (all artifacts prior to 1.7.0) lets a remote, unauthenticated attacker exhaust CPU by feeding JSON through the streaming AsyncParser in many tiny chunks, forcing repeated rescans of a single incomplete token. Exploitation is bounded by two preconditions: the target must parse attacker-influenced input incrementally via AsyncParser rather than parsing a fully buffered document, and the attacker must be able to influence chunk boundaries so that one token is split across many small reads - hence the assessed CVSS 3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H, an availability-only (HIGH) impact with no confidentiality or integrity effect. No public exploit code and no confirmed active exploitation were identified at time of analysis; the vendor fixed the issue in version 1.7.0.
RemediationAI
Vendor-released patch: upgrade Jawn to 1.7.0 or later (https://github.com/typelevel/jawn/releases/tag/v1.7.0), which introduces the rescanSize guard so absorb no longer rescans a partial token from the start; the full diff is at https://github.com/typelevel/jawn/commit/cddcd5e3387c356b05953f7b2af103d309687e4b and the advisory at https://github.com/typelevel/jawn/security/advisories/GHSA-w4cm-gvhj-cgw6. Where upgrading is not immediately possible, replace AsyncParser with Jawn's synchronous parsing of a complete buffer (for example parseFromString/ChannelParser over a fully read payload) - this removes the incremental rescan path entirely, at the cost of higher per-request memory for large documents. Alternatively, buffer and reassemble the entire request body before invoking AsyncParser so that tokens are not delivered in tiny fragments, or place an upstream cap on request size and per-connection read/chunk rate so that an attacker cannot generate the many-small-chunks pattern; both measures trade memory and latency for CPU safety. Applications that already read the full body before parsing, or that use only synchronous Jawn parsing, are not affected and require no change.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 7 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Jawn is a high-performance JSON parser written in Scala and published by Typelevel for Scala 2.12, 2.13 and 3 (CPE entries org.typelevel:jawn-parser_2.12, _2.13 and _3, plus the umbrella typelevel:jawn entry). Its AsyncParser class supports incremental parsing in which the caller repeatedly invokes absorb with successive byte chunks. The root cause is class CWE-400 (Uncontrolled Resource Consumption): when a single JSON token - a long string, an escaped string, or a long number - is split across many small absorb calls, each call rescanned the incomplete token from its beginning before determining that more input was needed, yielding quadratic O(n^2) work relative to token length. The upstream fix (commit cddcd5e3387c356b05953f7b2af103d309687e4b, released as v1.7.0) adds a rescanSize counter that records how many bytes were already scanned and discarded mid-token, and short-circuits absorb when fewer than that many additional bytes have arrived, converting the behavior to linear O(n). Regression tests in the same commit feed inputs byte-by-byte (including a 100,000-character string, a 100,000-byte escaped string, and a 200,000-digit number) to verify consistency with the synchronous parser.
Know when Jawn gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated CPU-exhaustion DoS, but requires the attacker to control chunk framing and the app to use AsyncParser streaming, so AC:H; availability-only impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn's AsyncParser can perform quadratic work when a single JSON token is delivered across many small chunks because each absorb call rescans the incomplete token from the start. A remote attacker who controls untrusted JSON input and its chunk sizes can exhaust CPU resources and cause denial of service in applications using AsyncParser. This issue is fixed in version 1.7.0.
Blast Radius
ecosystem impact- 88 maven packages depend on org.typelevel:jawn-parser_2.12 (10 direct, 78 indirect)
- 140 maven packages depend on org.typelevel:jawn-parser_2.13 (8 direct, 132 indirect)
- 225 maven packages depend on org.typelevel:jawn-parser_3 (9 direct, 216 indirect)
Ecosystem-wide dependent count for version 1.7.0 and other introduced versions.
Technical POC Analysis
Bug class: CWE-400 (Uncontrolled Resource Consumption), with CWE-407 (Inefficient Algorithmic Complexity) as the mechanism.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A denial-of-service flaw in the Jawn JSON parser for Scala (all artifacts before 1.7.0) allows an unauthenticated remote party to consume excessive CPU on any service that streams attacker-influenced JSON through the AsyncParser component. Only systems that parse input incrementally with attacker-controllable chunk boundaries are exposed, but those services can be slowed or stalled, degrading availability for downstream users and dependent business processes. Confidentiality and integrity are unaffected; the risk is operational disruption and potential SLA impact for teams running affected Scala services.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Privilege escalation in the Jawn WordPress theme (by MvpThemes) affects all versions through 1.4.2, allowing an unauthen
Privilege escalation in the Jawn WordPress theme (versions ≤ 1.4.2, by mvpthemes) allows a remote, unauthenticated attac
Deeply nested JSON arrays and objects drive JVM heap exhaustion in Typelevel Jawn versions before 1.7.0, where the throw
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-85551
GHSA-w4cm-gvhj-cgw6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB