CVE-2026-68494
Received Received - Intake

Integer Length Bypass in Jackson Core

Vulnerability report for CVE-2026-68494, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-04

Last updated on: 2026-08-04

Assigner: HeroDevs

Description

The fix released in jackson-core 2.18.6 and 2.21.1 for CVE-2026-18401 (GHSA-72hv-8253-57qq, number length constraint bypass in the non-blocking parser) is incomplete. This record covers the remaining bypass. The earlier fix wired validateIntegerLength() into a new _setIntLength() helper and invoked it wherever the integer portion of a number is decided: a terminator byte arrives, a . or e/E is seen, or input ends inside a fully buffered value. It was not invoked on the attacker-relevant path where the parser runs out of input while still inside the MINOR_NUMBER_INTEGER_DIGITS minor state and returns NOT_AVAILABLE to the caller. As a result, an attacker who streams JSON to a non-blocking parser in many small chunks, without ever sending a terminator byte, keeps the parser inside MINOR_NUMBER_INTEGER_DIGITS indefinitely. _textBuffer.expandCurrentSegment() grows the accumulator on every chunk while validateIntegerLength() is never called. The accumulator is bounded only by maxStringLength (20 MiB by default) rather than by maxNumberLength (1000 by default), an amplification of roughly 20,000x over the documented limit. Because Java char values occupy two bytes, a single connection can be driven to approximately 40 MiB of heap before the validator finally fires when the value completes. The equivalent fraction-path code is correct: _finishFloatFraction() calls _setFractLength() before its NOT_AVAILABLE return. The missing call affects the integer-digit paths in _startPositiveNumber(), _startNegativeNumber() and _finishNumberIntegralPart() in NonBlockingUtf8JsonParserBase. Impact: reactive frameworks such as Spring WebFlux/Reactor, Quarkus, Helidon and Vert.x feed inbound HTTP or gRPC bytes to the async parser as they arrive, which is precisely the chunked-feed shape required. Operators who set StreamReadConstraints.maxNumberLength expecting it to cap memory per number value do not get that guarantee; memory accumulates per concurrent connection and attacker-controlled concurrency can exhaust the JVM heap. The synchronous parsers (UTF8StreamJsonParser, ReaderBasedJsonParser) and the async parser operating on complete input are not affected. Exploitation requires only the ability to stream data to a parsing endpoint; no privileges or user interaction are needed. This issue affects com.fasterxml.jackson.core:jackson-core from version 2.15.0 through 2.18.7, from 2.19.0 through 2.21.3, and from 2.22.0 through 2.22.0, and tools.jackson.core:jackson-core from 3.0.0 through 3.1.3 and from 3.2.0 through 3.2.0. 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-r7wm-3cxj-wff9 states the affected 2.x range without a lower bound.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-04
Last Modified
2026-08-04
Generated
2026-08-04
AI Q&A
2026-08-04
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 6 associated CPEs
Vendor Product Version / Range
fasterxml jackson-core From 2.15.0 (inc) to 2.18.7 (inc)
fasterxml jackson-core From 2.19.0 (inc) to 2.21.1 (exc)
fasterxml jackson-core From 2.21.0 (inc) to 2.21.3 (inc)
fasterxml jackson-core 2.22.0
fasterxml jackson-core From 3.0.0 (inc) to 3.1.3 (inc)
fasterxml jackson-core 3.2.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-770 The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-68494 is a bypass vulnerability in the Jackson-core library's async JSON parser. It allows attackers to send extremely long integer values in small chunks without proper length validation. The parser fails to enforce the maxNumberLength constraint during streaming, causing memory accumulation up to 40 MiB per connection instead of the intended 1000-digit limit. This leads to potential denial-of-service conditions.

Detection Guidance

Detecting this vulnerability requires monitoring for unusually large JSON payloads being processed by Jackson-core's async parser. Check application logs for requests containing extremely long numeric values or repeated small chunks of digit-only data. Use network monitoring tools like tcpdump or Wireshark to capture and analyze JSON traffic patterns.

Impact Analysis

This vulnerability can be exploited remotely without privileges or interaction. If you use reactive frameworks like Spring WebFlux, Quarkus, Helidon, or Vert.x, attackers can stream malicious JSON data to exhaust server memory. This may cause crashes, slowdowns, or complete denial of service for your application.

Compliance Impact

This vulnerability could lead to denial-of-service conditions via memory exhaustion, which may impact availability of systems handling sensitive data. For GDPR, this could affect the right to access or rectify data if services become unavailable. For HIPAA, it may disrupt access to protected health information, potentially violating availability requirements.

Mitigation Strategies

Immediately update jackson-core to version 2.18.8, 2.21.4, 2.22.0, 3.1.4, or 3.2.0 or later. If immediate update isn't possible, implement network-level protections to block or limit JSON payload sizes. For reactive frameworks like Spring WebFlux, configure StreamReadConstraints.maxNumberLength to a lower value as a temporary measure.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-68494. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart