Unchecked Numeric Lengths in Jackson Async Parser
Vulnerability ID: GHSA-72HV-8253-57QQ
CVSS Score: 7.5
Published: 2026-02-28
A significant oversight in the FasterXML jackson-core library's non-blocking (asynchronous) JSON parser allows for the bypass of StreamReadConstraints, specifically regarding numeric value lengths. While the standard blocking parser correctly enforces these limits to prevent Denial of Service (DoS) attacks, the async implementation fails to validate the length of incoming integer and floating-point values against the configured maximums. This discrepancy exposes applications using reactive stacks—such as Spring WebFlux, Vert.x, or Micronaut—to resource exhaustion attacks where specially crafted JSON payloads can trigger excessive memory allocation or CPU consumption.
TL;DR
The non-blocking Jackson parser ignores maxNumberLength constraints, allowing attackers to send arbitrarily long numbers. This causes Denial of Service (DoS) in reactive Java applications via memory and CPU exhaustion.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-770
- Attack Vector: Network
- CVSS Score: 7.5 (High)
- Impact: Denial of Service (DoS)
- Affected Component: NonBlockingUtf8JsonParserBase
- Exploit Status: PoC Available
Affected Systems
- Spring WebFlux Applications
- Vert.x Applications
- Micronaut Framework (Reactive mode)
- Netty-based services using Jackson
- Java applications using JsonFactory.createNonBlockingByteArrayParser
-
jackson-core: >= 2.15.0, < 2.15.4 (Fixed in:
2.15.4) -
jackson-core: >= 2.16.0, < 2.16.2 (Fixed in:
2.16.2)
Exploit Details
- GitHub Advisory: Advisory details describing the attack vector via large numeric tokens.
Mitigation Strategies
- Update Jackson dependencies immediately.
- Verify StreamReadConstraints configuration.
- Implement WAF-level body size limits.
Remediation Steps:
- Identify all projects using
jackson-corevia dependency tree analysis (e.g.,mvn dependency:tree). - Upgrade
jackson-coreto version 2.15.4 (for 2.15.x users), 2.16.2 (for 2.16.x users), or 2.17.0+. - If you explicitly configure
JsonFactory, ensureStreamReadConstraintsare enabled (they are by default in newer versions). - Redeploy applications and monitor for
JsonParseExceptionwhich may indicate legitimate but large payloads being blocked.
References
Read the full report for GHSA-72HV-8253-57QQ on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)