CVE-2026-68497 in jackson-databind
Resumen
por VulDB • 2026-09-11
jackson-databind asocia una cadena JSON a un campo de tipo javax.xml.datatype.Duration o javax.xml.datatype.XMLGregorianCalendar pasando la cadena sin procesar (verbatim) a DatatypeFactory.newDuration(value) o newXMLGregorianCalendar(value) en CoreXMLDeserializers.Std._deserialize. Estos deserializadores se registran por defecto sin necesidad de activación explícita, por lo que un ObjectMapper o JsonMapper estándar, sin tipado polimórfico ni configuración especial, alcanza esta ruta. La gramática léxica del XML Schema permite componentes numéricos de longitud arbitraria, los cuales el JDK materializa a través de los constructores nativos BigInteger(String) y BigDecimal(String), ambos con complejidad cuadrática respecto al número de dígitos. Dado que estos dígitos se encuentran dentro de un token de cadena JSON en lugar de un token numérico JSON, la protección StreamReadConstraints.maxNumberLength de jackson-core nunca se aplica; los NumberDeserializers propios de Jackson llaman a validateIntegerLength o validateFPLength antes de analizar una número convertido a cadena, pero el deserializador de tipos de datos XML omite esa comprobación previa. Por lo tanto, un atacante no autenticado puede enviar una única solicitud de unos pocos megabytes, como un valor Duration que consiste en la letra P seguida de varios millones de dígitos y la letra Y, forzando decenas de segundos hasta varios minutos de trabajo de CPU monohilo; unas pocas solicitudes concurrentes pueden saturar los hilos de trabajo del servidor. Esto afecta a com.fasterxml.jackson.core:jackson-databind desde 2.0.0 antes de 2.18.10, desde 2.19.0 antes de 2.21.6 y desde 2.22.0 antes de 2.22.2; así como a tools.jackson.core:jackson-databind desde 3.0.0 antes de 3.1.6 y desde 3.2.0 antes de 3.2.2. Los usuarios deben actualizar a las versiones 2.18.10, 2.21.6, 2.22.2, 3.1.6 o 3.2.2.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.