CVE-2026-68497: jackson-databind: Duration XMLGregorianCalendar Unbounded Number Parse DoS
jackson-databind 3.2.1 deserializes a JSON string bound to a javax.xml.datatype.Duration or javax.xml.datatype.XMLGregorianCalendar field by passing the raw string verbatim to DatatypeFactory.newDuration(value) / newXMLGregorianCalendar(value). Per the XML-Schema lexical grammar these factory methods accept numeric components of arbitrary length, which the JDK materializes into java.math.BigInteger / BigDecimal using the native BigInteger(String) constructor (an O(n²) parser). Because the digits reside inside a JSON string token, jackson-core’s StreamReadConstraints.maxNumberLength guard (which bounds only JSON number tokens) never fires, so there is no length limit anywhere on this path. An unauthenticated attacker can submit a single small request (e.g. ~1–5 MB) that forces tens of seconds to minutes of single-thread CPU consumption, yielding a denial of service under the default JsonMapper.builder().build() mapper with no polymorphic typing or special configuration.
References
- github.com/FasterXML/jackson-databind/commit/a99b7e74c8928f43f6975773a8c862c8316178bd
- github.com/FasterXML/jackson-databind/pull/6127
- github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-2.18.10
- github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-2.21.6
- github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-2.22.2
- github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-3.1.6
- github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-3.2.2
- github.com/FasterXML/jackson-databind/security/advisories/GHSA-q4xh-88c3-wmh7
- github.com/advisories/GHSA-q4xh-88c3-wmh7
- nvd.nist.gov/vuln/detail/CVE-2026-68497
Code Behaviors & Features
Detect and mitigate CVE-2026-68497 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 →