Skip to main content

jackson-core CVE-2026-18401

| EUVDEUVD-2026-52699 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-04 HeroDevs GHSA-6qm2-mcq7-53qp
6.9
CVSS 4.0 · Vendor: HeroDevs
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Identify reactive Java endpoint accepting JSON
  2. Delivery
    Craft JSON payload with number token exceeding 1000 digits
  3. Exploit
    Submit payload over HTTP with no authentication
  4. Install
    Async parser accumulates digits bypassing maxNumberLength
  5. C2
    JVM heap exhausted via unbounded TextBuffer growth
  6. Execute
    Optional: trigger O(n²) CPU exhaustion via BigInteger conversion
  7. Impact
    Service 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

jackson-core 2.15.0 ≤2.18.5
jackson-core 3.0.0 <3.1.0
jackson-core 2.19.0 <2.21.1

Affected Packages

maven com.fasterxml.jackson.core:jackson-core fix: 2.18.6, 2.21.1
maven tools.jackson.core:jackson-core fix: 3.1.0
euvd jackson_core fix: 2.21.1, 3.1.0

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

Vendor (HeroDevs) PRIMARY 6.9 MEDIUM
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
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Red Hat 5.3 MEDIUM

Primary rating from Vendor (HeroDevs).

CVSS VectorVendor: HeroDevs

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
High
foundational Java JSON library, ubiquitous in Spring Boot and enterprise Java stacks
Exploit
POC
Public exploit code exists
Data Quality
9 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
High
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor 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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy