PT-2026-67715 · Unknown · Jackson-Core
CVSS v4.0
6.9
Medium
| Vector | AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N |
Name of the Vulnerable Software and Affected Versions
jackson-core versions 2.15.0 through 2.18.5
jackson-core versions 2.19.0 through 2.21.0
jackson-core versions 3.0.0 through 3.0.x
Description
The non-blocking (asynchronous) JSON parser in jackson-core fails to enforce the
maxNumberLength constraint defined in StreamReadConstraints. This occurs because the async parsing path in NonBlockingUtf8JsonParserBase and related classes does not invoke number length validation methods. Specifically, methods like finishNumberIntegralPart() accumulate digits into the TextBuffer without checks, and valueComplete() fails to call resetInt() or resetFloat(), where validateIntegerLength() and validateFPLength() are executed. An attacker can submit a JSON document containing a number token of arbitrary length, leading to excessive memory allocation in the TextBuffer and potential OutOfMemoryError. Additionally, if the application calls getBigIntegerValue() or getDecimalValue(), the JVM may experience CPU exhaustion due to O(n^2) BigInteger parsing, resulting in a denial of service.Recommendations
For jackson-core versions 2.15.0 through 2.18.5, update to a version where the
maxNumberLength constraint is enforced in the async parser.
For jackson-core versions 2.19.0 through 2.21.0, update to a version where the maxNumberLength constraint is enforced in the async parser.
For jackson-core versions 3.0.0 through 3.0.x, update to a version where the maxNumberLength constraint is enforced in the async parser.Exploit
Fix
DoS
Allocation of Resources Without Limits
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Jackson-Core