Apache Struts es un framework de código abierto ampliamente utilizado para la creación de aplicaciones web modernas en Java. Su difusión en entornos empresariales y sitios web accesibles al público lo convierte en un componente crítico de la infraestructura de Internet y en un objetivo de alto valor para los atacantes.
Esta vulnerabilidad representa un riesgo elevado, permitiendo que un atacante remoto no autenticado provoque una condición de Denegación de Servicio (DoS). El impacto consiste en el agotamiento del espacio en disco, lo que puede hacer que la aplicación web, y potencialmente todo el servidor subyacente, dejen de responder. Esto conlleva interrupciones en las operaciones comerciales, impacta negativamente en la experiencia del usuario y puede causar pérdidas económicas.
Aunque por el momento no hay informes confirmados de explotación activa en entornos reales, existe un exploit público disponible. Esto aumenta significativamente la probabilidad de ataques oportunistas o dirigidos contra los sistemas vulnerables. Cualquier servidor expuesto a Internet que ejecute una versión vulnerable de Apache Struts debe considerarse en riesgo inmediato.
| Producto | Apache Struts |
| Fecha | 2025-12-03 16:47:36 |
Resumen técnico
La causa principal de esta vulnerabilidad es una gestión inadecuada de la limpieza de recursos dentro del componente de procesamiento de solicitudes multipart de Apache Struts. Cuando un usuario envía datos, como por ejemplo un archivo, a través de una solicitud multipart, el framework crea archivos temporales en el disco del servidor para gestionar dichos datos. La vulnerabilidad reside en la incapacidad de eliminar correctamente estos archivos temporales una vez que la solicitud ha sido procesada.
La cadena del ataque es la siguiente:
- Un atacante envía una serie de solicitudes multipart especialmente preparadas a un endpoint de una aplicación basada en una versión vulnerable de Apache Struts.
- El analizador de solicitudes multipart del framework procesa cada solicitud, creando un archivo temporal en el disco para cada una.
- Debido al defecto, el framework no ejecuta la lógica de limpieza necesaria, dejando los archivos temporales huérfanos en el sistema de archivos.
- Al repetir este proceso, un atacante puede llenar progresivamente el espacio en disco disponible, provocando finalmente el agotamiento completo del espacio. Esto conduce a una Denegación de Servicio, ya que la aplicación y otros procesos del sistema ya no pueden escribir en el disco.
Este problema afecta a las versiones de Apache Struts desde la 2.0.0 hasta la 6.7.0 y desde la 7.0.0 hasta la 7.0.3. La vulnerabilidad ha sido corregida en las versiones 6.7.1, 7.0.4 y posteriores. Un atacante no autenticado puede explotar esta vulnerabilidad para denegar el servicio sin necesidad de privilegios especiales.
Recomendaciones
- Actualizar inmediatamente: Realizar la actualización de todas las instancias de Apache Struts a las versiones más recientes y seguras, como 6.7.1 o 7.0.4, que incluyen la corrección de la vulnerabilidad.
- Mitigaciones: Si no es posible aplicar el parche de inmediato, considere implementar una limitación de tasa (rate-limiting) en los endpoints que gestionan solicitudes multipart/form-data para ralentizar la creación de archivos. Es posible configurar Web Application Firewalls (WAF) para bloquear solicitudes multipart malformadas, aunque esto no sustituye la actualización.
- Caza de amenazas y monitoreo:
- Monitorear atentamente el uso del espacio en disco de los servidores que ejecutan aplicaciones Apache Struts ante cualquier aumento rápido e inexplicable.
- Inspeccionar el directorio de archivos temporales utilizado por el servidor de aplicaciones Java (por ejemplo, el directorio
tempen Apache Tomcat) para verificar la presencia de archivos anómalos que no se eliminan.
- Respuesta a incidentes: En caso de sospecha de compromiso, proceda de inmediato a eliminar los archivos temporales huérfanos del disco para restaurar el servicio. Aísle el host comprometido y analice los registros de acceso del servidor web en busca de solicitudes POST repetidas provenientes de una única dirección IP. Conserve los registros para el análisis forense antes de aplicar el parche necesario.
- Defensa en profundidad: Asegúrese de que el servicio web se ejecute con un usuario de bajos privilegios, dotado de cuotas que limiten la capacidad de agotar el espacio en disco a nivel de sistema. Esto puede contribuir a confinar el impacto del DoS a la aplicación misma en lugar de a todo el servidor. Realice copias de seguridad periódicas de los datos y configuraciones críticas.
[Callforaction-THREAT-Footer]