CVE-2026-89425: jackson-core: UTF8DataInputJsonParser._reportInvalidToken() missing maxErrorTokenLength limit -> unbounded StringBuilder growth (DoS)
Any application creating parsers via JsonFactory.createParser(DataInput) over
attacker-supplied input (a fully public, documented API) is exposed to unbounded memory growth
from a single malformed token. Scaling the payload from the 20MB demonstrated here to
gigabytes (well within a typical unbounded request body) would drive the accumulated
StringBuilder — which additionally undergoes byte-to-char expansion and internal doubling —
to consume many times the raw payload size, realistically triggering OutOfMemoryError and
denying service to the whole JVM process. Critically, no available configuration mitigates
this: maxDocumentLength cannot be set for DataInput sources at all, and maxStringLength
does not apply to this code path.
References
- github.com/FasterXML/jackson-core/commit/211cf2c5d91abbec38067f37efc1363cd4e88ee3
- github.com/FasterXML/jackson-core/pull/1698
- github.com/FasterXML/jackson-core/releases/tag/jackson-core-2.18.11
- github.com/FasterXML/jackson-core/releases/tag/jackson-core-3.2.3
- github.com/FasterXML/jackson-core/security/advisories/GHSA-7hhh-6rmp-j9qf
- github.com/advisories/GHSA-7hhh-6rmp-j9qf
- nvd.nist.gov/vuln/detail/CVE-2026-89425
Code Behaviors & Features
Detect and mitigate CVE-2026-89425 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →