Dentro de la Trampa de Struts: Cómo una Silenciosa Falla en Java Podría Abrir las Bóvedas Corporativas
Un error recientemente revelado en Apache Struts 2 amenaza con exponer datos sensibles y perturbar aplicaciones críticas para los negocios en todo el mundo.
Todo comenzó, como tantas brechas, no con un estruendo sino con un susurro: una falla oculta en un framework web ubicuo, latente durante años, esperando la carga útil adecuada. Ahora, con el CVE-2025-68493, Apache Struts 2 se encuentra en el centro de una nueva tormenta de seguridad - una que podría abrir silenciosamente la puerta a archivos sensibles, datos confidenciales de negocios e incluso redes internas, todo con un solo archivo XML malicioso.
Datos Rápidos
- La vulnerabilidad CVE-2025-68493 afecta al componente XWork de Apache Struts 2.
- Permite ataques de Entidad Externa XML (XXE), poniendo en riesgo robo de datos, DoS y SSRF.
- Afecta tanto a versiones antiguas como actuales de Struts 2 - muchas aún sin parchear en entornos reales.
- Los parches están disponibles en Struts 6.1.1 y posteriores; las correcciones son retrocompatibles.
- Es posible aplicar mitigaciones temporales, pero se recomienda encarecidamente parchear de inmediato.
El núcleo del problema reside en XWork, un componente esencial de Apache Struts 2, utilizado por miles de aplicaciones web basadas en Java. La falla, descubierta por investigadores de seguridad de ZAST.AI, es engañosamente simple: una validación inadecuada de los archivos de configuración XML. Cuando Struts 2 analiza un archivo XML, no bloquea correctamente las peligrosas “entidades externas”, funciones especiales de XML que los atacantes pueden explotar para hacer que la aplicación obtenga archivos del propio disco del servidor o de otros recursos internos.
Esto abre la puerta a ataques de inyección de Entidad Externa XML (XXE), una técnica infame por su capacidad para exfiltrar archivos sensibles del servidor, filtrar credenciales o incluso avanzar más allá dentro de la infraestructura interna de una empresa. Para las organizaciones que ejecutan versiones obsoletas o sin parchear de Struts 2 - especialmente aquellas que usan versiones antiguas que Apache ya no soporta - el riesgo es especialmente grave. Los atacantes podrían robar documentos propietarios, datos de clientes o causar interrupciones en el servicio, todo sin activar las alarmas convencionales.
El alcance de la vulnerabilidad es amplio. Struts 2 impulsa desde portales gubernamentales hasta intranets corporativas. Y aunque el equipo de Apache se ha movido rápidamente para lanzar una solución - versión 6.1.1 y superiores - la realidad es que muchas organizaciones se retrasan en aplicar parches, a menudo por temor a romper integraciones heredadas. Afortunadamente, el equipo de Struts ha asegurado que esta corrección sea retrocompatible, reduciendo la fricción en la actualización.
Para quienes no puedan parchear de inmediato, no todo está perdido. Los administradores de seguridad pueden desplegar defensas temporales: configurar analizadores XML personalizados (como un SAXParserFactory reforzado) para bloquear entidades externas, o establecer propiedades del sistema Java para bloquear funciones XML riesgosas. Estas mitigaciones compran tiempo - pero el reloj avanza.
Esta última alarma en Struts es un recordatorio contundente del pasado accidentado del framework, incluido su infame papel en la brecha de Equifax. En el panorama de amenazas actual, incluso pequeños errores en código heredado pueden tener consecuencias catastróficas. ¿La lección? No esperes a un incidente que acapare titulares - parchea ahora, o arriesga convertirte en el próximo caso de advertencia.
WIKICROOK
- Apache Struts 2: Apache Struts 2 es un framework web Java de código abierto que ayuda a los desarrolladores a crear aplicaciones web escalables y de nivel empresarial utilizando la arquitectura MVC.
- XWork: XWork es el componente central de Struts 2 responsable de procesar la configuración y las acciones, permitiendo un manejo seguro y eficiente de las solicitudes en aplicaciones web Java.
- Entidad Externa XML (XXE): Un ataque de Entidad Externa XML (XXE) ocurre cuando los atacantes explotan datos XML para acceder a archivos o sistemas externos, poniendo en riesgo fugas o brechas de datos.
- Servidor: Un servidor es una computadora o software que proporciona datos, recursos o servicios a otras computadoras, llamadas clientes, a través de una red.
- SAXParserFactory: SAXParserFactory es una clase de Java para crear analizadores SAX de XML. Su configuración afecta el procesamiento de XML y puede introducir riesgos de seguridad si no se maneja adecuadamente.