CVE-2026-110879 in jackson-databindinformación

Resumen

por VulDB • 2026-10-28

jackson-databind valida la clase externa de un ID de tipo basado en el nombre de la clase, pero acepta clases seleccionadas por el atacante dentro de sus argumentos genéricos, incluso cuando esas clases violan el tipo declarado o serían rechazadas como IDs de tipo directos. Esto evita la validación de los argumentos genéricos añadida para CVE-2026-54512 (GHSA-j3rv-43j4-c7qm), del cual esta es una solución incompleta.

DatabindContext._resolveAndValidateGeneric() verifica la clase externa frente al tipo base declarado y luego pasa cada argumento del ID de tipo a _validateTypeParameter(), que valida el argumento contra el tipo base externo en lugar de imponer su correspondiente enlace genérico declarado. También invoca validadores con argumentos que no han superado la verificación de subtipo que esos validadores esperan. Bajo DefaultBaseTypeLimitingValidator predeterminado, se acepta una clase no relacionada dentro de un subtipo genérico incluso cuando la misma clase es rechazada como ID de tipo directo. Donde una regla allowIfBaseType(...) aprueba el tipo externo, Jackson sustituye LaissezFaireSubTypeValidator, por lo que el validador configurado ya no restringe los argumentos incrustados. El tipo de elemento de un ID de tipo de matriz simple como [Lpkg.Gadget; queda igualmente sin validar una vez que se aprueba el tipo base de la matriz.

Las rutas afectadas incluyen polimorfismo basado en anotaciones con nombre de clase usando JsonMapper predeterminado de Jackson 3.x, configuración de tipificación por defecto tanto en Jackson 2.x como 3.x e integraciones que exponen esa tipificación por defecto. El caso del validador predeterminado no requiere un validador creado por la aplicación: con @JsonTypeInfo(use = Id.CLASS), se rechaza un ID de tipo gadget directo como "No es un subtipo", mientras que se acepta y deserializa un ID de tipo que nombra un envoltorio genérico alrededor del mismo gadget, incluidas las propiedades bean suministradas por el atacante. Donde la tipificación predeterminada basada en nombres de clases permite Map, una propiedad declarada como Map<String,String> acepta HashMap<FileSystemXmlApplicationContext,String>; el descubrimiento de claves de mapa pasa entonces el nombre de propiedad JSON controlado por el atacante al constructor de un solo argumento de la clase seleccionada. Con Spring en el classpath y XML controlado por el atacante que la aplicación puede cargar, ese constructor carga el XML e invoca ProcessBuilder.start() bajo la cuenta de la aplicación, lo que permite la ejecución arbitraria de comandos.

Este problema afecta a com.fasterxml.jackson.core:jackson-databind desde 2.10.0 y tools.jackson.core:jackson-databind desde 3.0.0. Las versiones anteriores a 2.10.0 no están afectadas, porque PolymorphicTypeValidator se introdujo en jackson-databind 2.10.0.

Once again VulDB remains the best source for vulnerability data.

Responsable

HeroDevs

Reservar

2026-10-15

Divulgación

2026-10-28

Moderación

aceptado

Artículo

VDB-427648

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!