Spring4Shell: una vulnerabilidad crítica en el framework Spring Java

Un investigador ha encontrado una vulnerabilidad crítica en Spring, un marco de trabajo muy popular de Java. Te contamos cómo funciona, por qué es peligrosa y cómo protegerte.

Unos investigadores han descubierto una vulnerabilidad crítica, la CVE-2022-22965, en Spring, un marco de trabajo de código abierto para la plataforma Java. Por desgracia, toda la información sobre la vulnerabilidad se filtró al público antes de que se publicara el anuncio oficial y se lanzaran los parches relevantes.

La vulnerabilidad atrajo de inmediato la atención de los especialistas en seguridad de la información, ya que potencialmente representa una seria amenaza para muchas aplicaciones web. Al igual que el famoso Log4Shell, la nueva vulnerabilidad recibió el nombre de Spring4Shell.

Los creadores del marco de trabajo VMware Spring ya han lanzado parches para corregir las aplicaciones vulnerables, por lo que recomendamos que todas las empresas que utilicen las versiones 5.3 y 5.2 de Spring Framework actualicen de inmediato a las versiones 5.3.18 o 5.2.20.

¿Qué es Spring4Shell y por qué es una vulnerabilidad tan peligrosa?

Esta vulnerabilidad pertenece al tipo RCE, es decir, permite a un atacante ejecutar código malicioso en remoto. De momento, de acuerdo con la calculadora CVSS v3.0, su gravedad es de 9,8 sobre 10. La vulnerabilidad afecta a las aplicaciones Spring MVC y Spring WebFlux que se ejecutan bajo Java Development Kit versión 9 o posterior.

Los investigadores informaron sobre el descubrimiento de la vulnerabilidad a VMware el martes por la noche y el miércoles ya habían publicado la prueba de concepto (PoC por sus siglas en inglés) de la vulnerabilidad en GitHub. Esta PoC se eliminó rápidamente, pero no antes de que los expertos en seguridad la percibieran (de hecho, algunos confirmaron el peligro de la vulnerabilidad). Y es muy poco probable que un exploit tan potente haya pasado desapercibido para los ciberdelincuentes.

Spring Framework es bastante popular entre los desarrolladores de Java, lo que significa que muchas aplicaciones podrían quedar expuestas a la vulnerabilidad. De acuerdo con esta publicación de Bleeping Computer, las aplicaciones Java vulnerables a Spring4Shell podrían acabar comprometiendo una gran cantidad de servidores. Además, según esta misma publicación, la vulnerabilidad ya se está explotando en activo.

Para más información técnica, junto con los indicadores de compromiso de las vulnerabilidades Spring4Shell, visita este artículo en Securelist. También encontrarás una descripción de otra vulnerabilidad crítica en el marco de trabajo Spring para Java (CVE-2022-22963) en esta misma publicación.

Condiciones para explotar una vulnerabilidad Spring4Shell

El único método de explotación de Spring4Shell conocido actualmente requiere una secuencia específica de acontecimientos. Para que el exploit tenga éxito, el atacante debe utilizar los siguientes componentes:

· Java Development Kit versión 9 o posterior.

· Apache Tomcat como contenedor de servlets.

· Un formato de archivo WAR (recurso de aplicación web) en lugar del JAR predeterminado.

· Dependencias en spring-webmvc o spring-webflux.

· Versiones de Spring Framework 5.3.0 a 5.3.17, 5.2.0 a 5.2.19 o anteriores.

Sin embargo, es muy posible que haya más opciones de explotación aún desconocidas y que la misma vulnerabilidad pueda explotarse de alguna otra forma.

Cómo protegerte de Spring4Shell

El principal consejo para cualquiera que use Spring Framework es actualizar a las versiones seguras 5.3.18 o 5.2.20.

Apache Software Foundation también ha lanzado versiones parcheadas de Apache Tomcat 10.0.20, 9.0.62 y 8.5.78, en las que el vector de ataque está cerrado en el lado de Tomcat.

Los desarrolladores de Spring también han lanzado versiones parcheadas de las extensiones Spring Boot 2.5.12 y 2.6.6 que dependen de la versión parcheada de Spring Framework 5.3.18.

Si por algún motivo no puedes actualizar el software anterior, debes utilizar una de las soluciones alternativas publicadas en el sitio web oficial de Spring.

Para minimizar el riesgo de un ataque exitoso, te recomendamos que protejas todos los servidores, así como cualquier otro equipo que esté conectado a Internet, con una solución de seguridad de confianza. Si utilizas algún producto de seguridad de Kaspersky, asegúrate de que los módulos de prevención avanzada de exploits y el bloqueador de ataques de red estén habilitados.

Consejos