Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Pivotal Spring Security (CVE-2017-4995)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-502 Deserialización de datos no confiables
Fecha de publicación:
27/11/2017
Última modificación:
20/04/2025

Descripción

Se ha descubierto un problema en Pivotal Spring Security 4.2.0.RELEASE through 4.2.2.RELEASE y Spring Security 5.0.0.M1. Al estar configurado para habilitar la escritura por defecto, Jackson contenía una vulnerabilidad de deserialización que podría conducir a la ejecución de código arbitrario. Jackson solucionó esta vulnerabilidad poniendo los "deserialization gadgets" conocidos en una lista negra. Spring Security configura Jackson con la escritura global habilitada por defecto , lo que significa que (a través del exploit anterior) se podría ejecutar código arbitrario si lo siguiente es cierto: (1) La compatilibidad de Spring Security con Jackson se aprovecha invocando SecurityJackson2Modules.getModules(ClassLoader) o SecurityJackson2Modules.enableDefaultTyping(ObjectMapper); (2) Jackson se usa para deserializar datos no fiables (Spring Security no realiza la deserialización con Jackson, por lo que esta es una elección explícita del usuario); y (3) hay un "deserialization gadget" desconocido (Jackson aún no lo ha puesto en su lista negra) que permite la ejecución de código presente en classpath. Jackson proporciona un enfoque de listas negras para protegerse contra este tipo de ataque, pero Spring Security debería ser proactivo contra el bloqueo de "deserialization gadgets" desconocidos cuando Spring Security habilita la escritura por defecto.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:vmware:spring_security:4.2.0:release:*:*:*:*:*:*
cpe:2.3:a:vmware:spring_security:4.2.1:release:*:*:*:*:*:*
cpe:2.3:a:vmware:spring_security:4.2.2:release:*:*:*:*:*:*
cpe:2.3:a:vmware:spring_security:5.0.0:m1:*:*:*:*:*:*