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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →