Vulnerabilidad Spring4Shell (CVE-2022-22965)
Vulnerabilidad Spring4Shell (CVE-2022-22965)
Publicado: 07/10/2025
Escrito por: Monica Burgess
CVE-2022-22965, ampliamente conocida como "Spring4Shell", es una vulnerabilidad crítica de ejecución remota de código (RCE) que se encontró en el popular Java Spring Framework. Piensa en ella como una puerta trasera sin seguro en ciertas aplicaciones web. Esta falla permite que un atacante no autenticado ejecute código malicioso de forma remota en un servidor objetivo, lo que podría darle control total. Como el Spring Framework es tan común en las aplicaciones Java empresariales, esta vulnerabilidad causó conmoción en la comunidad de ciberseguridad y generó comparaciones con el infame Log4Shell.
¿Cuándo se descubrió?
La vulnerabilidad Spring4Shell salió a la luz por primera vez a finales de marzo de 2022. Inicialmente fue divulgada a VMware por un investigador de seguridad y, poco después, se filtró en línea un exploit de prueba de concepto antes de que hubiera un parche oficial disponible. Esta filtración prematura creó una carrera caótica entre los atacantes que intentaban explotarla y los defensores que se apresuraban a encontrar una solución. El identificador oficial CVE, CVE-2022-22965, se asignó el 31 de marzo de 2022, junto con el lanzamiento de versiones parchadas del Spring Framework.
Productos y versiones afectados
Las condiciones para la vulnerabilidad Spring4Shell son bastante específicas. No afecta a todas las aplicaciones que usan el Spring Framework. Aquí tienes un desglose de la pila específica que es vulnerable.
Producto | Versiones afectadas | Versiones corregidas / enlaces de parches |
Spring Framework | 5.3.0 a 5.3.17 | 5.3.18+ |
Spring Framework | 5.2.0 a 5.2.19 | 5.2.20+ |
Requisito previo | Ejecutarse en JDK 9 o superior | N/A |
Requisito previo | Implementado como un archivo WAR tradicional | N/A |
Requisito previo | Usa spring-webmvc o spring-webflux | N/A |
Nota: Los archivos jar ejecutables de Spring Boot generalmente no son vulnerables de forma predeterminada, pero el potencial de explotación puede existir según configuraciones específicas.
Descripción técnica de Spring4Shell
Entonces, ¿cómo funciona todo esto? La causa raíz de la vulnerabilidad CVE-2022-22965 está en cómo el Spring Framework maneja el enlace de datos con Plain Old Java Objects (POJOs). En ciertas configuraciones, una función pensada para dar comodidad permite que un atacante envíe una solicitud HTTP especialmente diseñada. Esta solicitud puede manipular el ClassLoader y acceder a sus propiedades.
Encadenando propiedades, un atacante puede navegar por el gráfico de objetos para escribir un archivo malicioso, como un web shell, en una ubicación accesible del sistema de archivos del servidor. Por ejemplo, un atacante podría crear una solicitud que configure las propiedades de registro del servidor Tomcat para escribir un archivo JSP en el directorio raíz de la aplicación web. Una vez que ese archivo está en el servidor, el atacante solo tiene que navegar a su URL para ejecutar cualquier código que quiera. La explotabilidad de CVE-2022-22965 depende de esta manipulación de solicitudes muy específica, pero poderosa.
Tácticas, técnicas y procedimientos (TTPs)
Los atacantes que aprovechan la vulnerabilidad Spring4Shell suelen seguir un patrón claro. Su objetivo principal es lograr la ejecución remota de código. Esto normalmente empieza escaneando la web en busca de servidores que ejecuten versiones vulnerables del Spring Framework. Una vez que encuentran un posible objetivo, el atacante envía una solicitud HTTP POST diseñada para un endpoint vulnerable. Esta solicitud está pensada para modificar configuraciones del servidor, como las propiedades de registro, y así escribir un web shell malicioso (por ejemplo, un archivo .jsp) en el disco del servidor. Con el web shell en su lugar, el atacante obtiene un punto de apoyo persistente para ejecutar comandos arbitrarios, robar datos o moverse más a fondo dentro de la red.
Indicadores de compromiso
¿Buscas señales de un ataque Spring4Shell? Los registros de tu servidor son el mejor punto de partida. Los principales indicadores de compromiso (IOC) de la vulnerabilidad CVE-2022-22965 incluyen solicitudes HTTP sospechosas que contienen cadenas como "class.module.classLoader". Además, presta atención a la creación inesperada de archivos .jsp en los directorios de tu servidor web, sobre todo en los directorios de acceso público. Cualquier conexión de red saliente desde tu servidor web hacia direcciones IP o dominios inusuales podría ser otra señal de alerta, indicando una explotación exitosa y comunicación de comando y control (C2).
Pruebas de concepto y exploits conocidos
A pocas horas de divulgarse la vulnerabilidad, se publicaron varios exploits de prueba de concepto (PoC) de CVE-2022-22965 en plataformas como GitHub. Estos PoC demostraron lo fácil que era colocar un web shell en un servidor vulnerable. Los grupos cibercriminales y los actores patrocinados por estados rápidamente convirtieron estos PoC en armas, incorporándolos a sus kits de escaneo y explotación automatizados. Los investigadores de seguridad observaron un escaneo generalizado en busca de la vulnerabilidad, con atacantes que intentaban desplegar desde criptomineros hasta cargadores de ransomware. La disponibilidad de estos exploits públicos significó que incluso atacantes con poca habilidad podían aprovechar el exploit de CVE-2022-22965.
Cómo detectar la vulnerabilidad CVE-2022-22965
Detección de la vulnerabilidad CVE-2022-22965 requiere un enfoque de varias capas.
Detección basada en endpoints: Usa una solución de Detección y respuesta para endpoints (EDR) para monitorear escrituras de archivos sospechosas en los directorios de aplicaciones web. Busca procesos generados por el proceso de tu servidor web (por ejemplo, w3wp.exe o tomcat.exe) que ejecuten comandos inusuales como cmd.exe o powershell.exe.
Análisis de registros: Tu mejor opción es analizar los registros de acceso de tu servidor web. Busca solicitudes que contengan nombres de parámetros sospechosos como class.*, Class.*, *.class.*, o *.Class.*. Una consulta de SIEM podría buscar solicitudes POST a cualquier URL que incluya estos patrones en el cuerpo de la solicitud o en los parámetros de consulta.
Firmas de red: Los sistemas de detección de intrusiones de red (NIDS) pueden usar firmas para marcar solicitudes HTTP que coincidan con los patrones de explotación conocidos de CVE-2022-22965.
Impacto y riesgo de la vulnerabilidad CVE-2022-22965
El impacto de un exploit exitoso de Spring4Shell es grave. Como conduce a la ejecución remota de código, un atacante puede tomar el control total de tu servidor. Esto significa que puede:
Robar datos confidenciales: Acceder a bases de datos, archivos y otra información confidencial almacenada en el servidor.
Implementar ransomware: Cifrar tus archivos y exigir un rescate para liberarlos.
Interrumpir servicios: Derribar tu aplicación web, causando interrupción del negocio y pérdidas económicas.
Obtener un punto de apoyo persistente: Usar el servidor comprometido como plataforma de lanzamiento para atacar otros sistemas dentro de tu red.
El riesgo se amplifica por lo extendido que está el Spring Framework. Cualquier aplicación web pública que corra sobre una pila vulnerable es un blanco principal. No subestimes esto; el potencial de daño es enorme.
Estrategias de mitigación y remediación
Si usas una versión vulnerable, es momento de actuar. No esperes.
Aplica el parche de inmediato: la forma más eficaz de mitigar la vulnerabilidad CVE-2022-22965 es actualizar tu Spring Framework a una versión parcheada (5.3.18+ o 5.2.20+). Esta es la prioridad número uno. Aplicar el parche de CVE-2022-22965 cierra la vulnerabilidad.
Implementa un firewall de aplicaciones web (WAF): un WAF bien configurado puede bloquear las solicitudes HTTP maliciosas usadas para activar el exploit, lo que brinda una capa de defensa crítica mientras aplicas el parche.
Aplica soluciones temporales: si no puedes parchear de inmediato, la guía oficial de Spring sugirió crear un componente ControllerAdvice para agregar a una lista de bloqueo patrones de campo específicos como class.* y module.*. Esta es una solución temporal y no debe reemplazar la aplicación del parche.
Monitorea y busca amenazas: monitorea continuamente tus registros en busca de cualquier indicador de compromiso (IOC) de la vulnerabilidad CVE-2022-22965. Si encuentras evidencia de compromiso, aísla el servidor afectado de inmediato y comienza tu proceso de respuesta a incidentes. Una solución de seguridad robusta como la plataforma ITDR de Huntress puede ayudarte a detectar y responder a estas amenazas de manera eficaz.
Preguntas frecuentes sobre la vulnerabilidad Spring4Shell (CVE-2022-22965)