Investigadores de LGTM, una compañía que ofrece soluciones de análisis de código, reportaron el 17 de julio una vulnerabilidad crítica que afecta al plugin REST de todas las versiones de Apache Struts publicadas desde 2008, de la 2.5 a la 2.5.12.

La vulnerabilidad etiquetada con el CVE CVE-2017-9805 (S2-052) permite ejecución remota de comandos (RCE) gracias a un proceso inseguro de deserialización de payloads XML que realiza el plugin REST mediante el manejador XStream. Más concretamente mediante el interfaz ContentTypeHandler, el cual convierte los datos de entrada del usuario en objetos java. El método toObject() que utiliza no impone ninguna restricción en los datos que recibe y, como podéis imaginar, si se envía un XML malicioso el resultado es la ejecución arbitraria de comandos que comentamos.

El parche para dicha vulnerabilidad fue publicado el pasado martes con la versión de Struts 2.5.13, pero el problema es que a partir de ahí han surgido pruebas de concepto y exploits funcionales (incluso un módulo de metasploit) que permiten comprometer a numerosas aplicaciones web que utilizan el plugin REST (la mayoría en entornos enterprise) y que, dado la reciente publicación del parche, todavía no han sido actualizadas.

Para más inri, «es increiblemente fácil de explotar por un atacante … todo lo que necesitas es un navegador web».

Y cómo se puede ver en las siguientes imágenes, con el nuevo módulo de Metasploit nos traemos una sesión de Meterpreter fácilmente:

Así que, como habéis podido comprobar, existen numerosas empresas que utilizan Apache Struts2 en alguna de sus aplicaciones web y están en serio riesgo.

Es la segunda vulnerabilidad crítica que afecta a este framework, después de la etiquetada como CVE-2017-5638 y que fue activamente explotada en marzo. No queda otra, hay que volver a actualizar y urgentemente…

Fuentes:

Compartir