Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify reactive Java endpoint accepting JSON
-
DeliveryCraft JSON payload with number token exceeding 1000 digits
-
ExploitSubmit payload over HTTP with no authentication
-
InstallAsync parser accumulates digits bypassing maxNumberLength
-
C2JVM heap exhausted via unbounded TextBuffer growth
-
ExecuteOptional: trigger O(n²) CPU exhaustion via BigInteger conversion
-
ImpactService crash or sustained denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation 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 uses jackson-core's non-blocking (async) parser API specifically - the synchronous parser correctly enforces maxNumberLength and is not affected. The async parser is typically used by reactive Java frameworks such as Spring WebFlux; traditional Spring MVC or servlet-based applications using the default synchronous parser are not vulnerable. The affected jackson-core version (2.15.0-2.18.5, 2.19.0-2.21.0, or 3.0.0-3.0.x) must be present on the classpath. No authentication, elevated privileges, or user interaction are required: the attacker needs only the ability to submit arbitrary JSON to a network-accessible endpoint backed by the async parser. Exploitation is limited to applications in the reactive/non-blocking I/O deployment pattern; traditional synchronous deployments are immune. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:L) scores 6.9, rating availability impact as Low. This appears conservative given the description explicitly states the attack can cause OutOfMemoryError and CPU-based DoS - outcomes typically associated with High availability impact. The discrepancy likely reflects that the impact is conditional on the application using the async parser code path; not all jackson-core deployments are vulnerable, which may have influenced the VA:L choice. A publicly available PoC (JUnit test in GHSA-72hv-8253-57qq) lowers the bar for exploitation. There is no CISA KEV listing and no EPSS data was provided, so exploitation breadth in the wild is unknown. Real-world priority is elevated for organizations running Spring WebFlux or other reactive Java stacks that expose public-facing JSON endpoints, where the combination of no-auth network access and a working PoC makes exploitation straightforward once the async parser is confirmed in use. Applications exclusively using the synchronous parser are fully unaffected regardless of jackson-core version. |
| Exploit ScenarioDerived | An attacker identifies a Spring WebFlux application endpoint that parses JSON using jackson-core's async parser and submits a POST request containing a JSON number token composed of 5,000 or more digits. The NonBlockingUtf8JsonParserBase accumulates all digits into an unbounded TextBuffer without invoking maxNumberLength validation, causing rapid heap growth and an OutOfMemoryError that crashes or hangs the JVM process. If the application's response handler calls getBigIntegerValue() on the oversized token, the JVM additionally burns CPU in O(n²) BigInteger conversion, compounding the denial of service. A JUnit 5 PoC demonstrating this behavior against a 5,000-digit number is published in GHSA-72hv-8253-57qq. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 04, 2026
Denial of service in FasterXML jackson-core's non-blocking (async) JSON parser allows unauthenticated network attackers to exhaust JVM heap and CPU by submitting JSON containing arbitrarily long number tokens that bypass the maxNumberLength constraint. Affected deployments are those using the async parser API - particularly reactive frameworks such as Spring WebFlux - running com.fasterxml.jackson.core:jackson-core 2.15.0-2.18.5 or 2.19.0-2.21.0, or tools.jackson.core:jackson-core 3.0.0-3.0.x. Publicly available exploit code exists (PoC JUnit test published in GHSA-72hv-8253-57qq); the vulnerability is not listed in the CISA KEV catalog at time of analysis.
RemediationAI
Upgrade to a patched release: com.fasterxml.jackson.core:jackson-core 2.18.6 (for applications on the 2.15.0-2.18.5 branch) or 2.21.1 (for the 2.19.0-2.21.0 branch), and tools.jackson.core:jackson-core 3.1.0 for the 3.0.x branch. These versions are confirmed by GitHub package advisory data and the PR #1555 diff (https://github.com/FasterXML/jackson-core/pull/1555). If an immediate upgrade is not feasible, the most effective workaround is to configure an upstream request body size limit to bound incoming JSON payload size - for example, setting spring.codec.max-in-memory-size in Spring WebFlux to a value that prevents multi-megabyte payloads from reaching the parser. This has the trade-off of rejecting legitimately large payloads. Switching from the async parser to the synchronous parser also eliminates the vulnerability but requires application-level refactoring and is not viable for reactive architectures. Note that simply restricting network access is insufficient if any authenticated path accepts JSON.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 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
jackson-core (CPE: cpe:2.3:a:fasterxml:jackson-core) is the foundational JSON streaming API for the Jackson library family, used pervasively in the Java ecosystem. The library exposes two distinct parsing APIs: a synchronous (blocking) parser and a non-blocking (async) parser implemented in NonBlockingUtf8JsonParserBase. StreamReadConstraints, introduced in jackson-core 2.15.0, defines safety limits including maxNumberLength (default 1,000 digits). CWE-770 (Allocation of Resources Without Limits or Throttling) is the root cause: the async parsing path calls _valueComplete() to finalize number tokens but never invokes resetInt() or resetFloat(), the ParserBase methods where validateIntegerLength() and validateFPLength() perform the length check. As a result, methods such as _finishNumberIntegralPart() accumulate digit characters into an unbounded TextBuffer. The fix (PR #1555, commit b0c428e6) replaces direct assignment to _intLength with calls to _setIntLength(), a setter that enforces the constraint. A secondary CPU exhaustion vector exists when the application subsequently calls getBigIntegerValue() or getDecimalValue(), triggering O(n²) BigInteger parsing in the JVM.
Know when Jackson Core 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Network-reachable with no auth against async-parser endpoints; A:H because OOM and CPU exhaustion can fully halt the service; AC:L because exploitation requires no attacker-controlled precondition beyond submitting JSON.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Primary rating from Vendor (HeroDevs).
CVSS VectorVendor: HeroDevs
DescriptionCVE.org
The non-blocking (asynchronous) JSON parser in jackson-core does not enforce the maxNumberLength constraint defined in StreamReadConstraints (default: 1000 characters). An attacker able to submit JSON to an application that uses the async parser API can supply a number token of arbitrary length, leading to excessive memory allocation and potential CPU exhaustion, resulting in a denial of service.
The synchronous parser enforces this limit correctly, so the constraint is applied inconsistently depending on which parsing API the application uses.
Root cause: the async parsing path in NonBlockingUtf8JsonParserBase and related classes never invokes the number length validation methods. Number parsing methods such as _finishNumberIntegralPart() accumulate digits into the TextBuffer without any length check, then call _valueComplete() to finalize the token. _valueComplete() does not call resetInt() or resetFloat(), which are the methods in ParserBase where validateIntegerLength() and validateFPLength() are performed. Because that validation step is skipped, maxNumberLength is never enforced on the async code path.
Impact: an attacker sending a JSON document containing an arbitrarily long number to an application using the async parser (for example a Spring WebFlux or other reactive application) can cause unbounded allocation in the TextBuffer and an OutOfMemoryError. If the application subsequently calls getBigIntegerValue() or getDecimalValue(), the JVM may additionally be tied up in O(n^2) BigInteger parsing, causing CPU-based denial of service.
No privileges or user interaction beyond the ability to submit data for parsing are required.
This issue affects com.fasterxml.jackson.core:jackson-core from version 2.15.0 through 2.18.5 and from 2.19.0 through 2.21.0, and tools.jackson.core:jackson-core from 3.0.0 through 3.0.x.
Versions prior to 2.15.0 are not affected, because StreamReadConstraints -- which defines the maxNumberLength setting -- was first introduced in jackson-core 2.15.0, so no such constraint exists to be bypassed in earlier releases. Note that GHSA-72hv-8253-57qq records the lower bound of the affected 2.x range as 2.0.0.
Blast Radius
ecosystem impact- 9,324 maven packages depend on com.fasterxml.jackson.core:jackson-core (1,039 direct, 8,309 indirect)
- 400 maven packages depend on tools.jackson.core:jackson-core (74 direct, 326 indirect)
Ecosystem-wide dependent count for version 2.19.0 and other introduced versions.
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.
More in Jackson Core
View allMemory exhaustion in jackson-core's non-blocking async parser allows remote unauthenticated attackers to exhaust JVM hea
Uncontrolled-recursion denial of service in FasterXML jackson-core 3.0.0 through 3.0.x lets a remote attacker crash JSON
Heap exhaustion denial of service in FasterXML jackson-core 2.16.0 and later allows an unauthenticated remote attacker t
Denial of service in FasterXML jackson-core 2.8.0 and later: an unauthenticated remote attacker who can supply a malform
Same technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Not-Affected |
| SUSE Linux Enterprise Server 16.1 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Not-Affected |
| openSUSE Leap 16.0 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE Manager Proxy 4.3 | Not-Affected |
| SUSE Manager Proxy LTS 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Not-Affected |
| SUSE Manager Server 4.3 | Not-Affected |
| SUSE Manager Server LTS 4.3 | Not-Affected |
| SUSE Manager Server Module 4.3 | Not-Affected |
| SUSE Enterprise Storage 7 | Not-Affected |
| SUSE Enterprise Storage 7.1 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Not-Affected |
| SUSE Manager Proxy 4.1 | Not-Affected |
| SUSE Manager Proxy 4.2 | Not-Affected |
| SUSE Manager Retail Branch Server 4.1 | Not-Affected |
| SUSE Manager Retail Branch Server 4.2 | Not-Affected |
| SUSE Manager Server 4.1 | Not-Affected |
| SUSE Manager Server 4.2 | Not-Affected |
| openSUSE Leap 15.3 | Not-Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
| suse/manager/5.0/x86_64/server suse/manager/5.0/x86_64/server-attestation suse/multi-linux-manager/5.1/x86_64/server suse/multi-linux-manager/5.1/x86_64/server-attestation suse/multi-linux-manager/5.2/x86_64/server suse/multi-linux-manager/5.2/x86_64/server-attestation | Not-Affected |
EUVD-2026-52699
GHSA-6qm2-mcq7-53qp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB