Nueva vulnerabilidad de ejecución remota de código en Apache Struts

22/08/2018

Un investigador de seguridad de la compañía Semmle, Man Yue Mo, reveló una vulnerabilidad crítica de ejecución remota de código en el popular framework de aplicaciones web de Apache Struts que podría permitir a los atacantes remotos ejecutar código malicioso en los servidores afectados.

Apache Struts es un framework de código abierto para desarrollar aplicaciones web en el lenguaje de programación Java y es ampliamente utilizado por empresas de todo el mundo, incluido el 65% de las compañías de Fortune 100, como Vodafone, Lockheed Martin, Virgin Atlantic y el IRS.

La vulnerabilidad (CVE-2018-11776) reside en el núcleo de Apache Struts y se origina debido a la validación insuficiente de las entradas no confiables provistas por el usuario en el núcleo del framework de Struts bajo ciertas configuraciones.

El nuevo exploit de Apache Struts se puede activar simplemente visitando una URL especialmente diseñada en el servidor web afectado, lo que permite a los atacantes ejecutar código malicioso y, finalmente, tomar el control completo del servidor destino que ejecuta la aplicación vulnerable.

Vulnerabilidad de Struts2 ¿Te afecta?

Todas las aplicaciones que utilizan versiones compatibles con Apache Struts (Struts 2.3 a Struts 2.3.34 y Struts 2.5 a Struts 2.5.16) e incluso algunas versiones de Apache Struts no compatibles son potencialmente vulnerables a este defecto, incluso cuando no se han habilitado complementos adicionales.

La implementación de Apache Struts es vulnerable a la falla reportada de ejecución remota de código si cumple con las siguientes condiciones:

  • La bandera alwaysSelectFullNamespace se establece en verdadero en la configuración de Struts.
  • El archivo de configuración de Struts contiene una bandera de "acción" o "url" que no especifica el atributo de espacio de nombres opcional o especifica un espacio de nombres comodín.

Según el investigador, incluso si una aplicación no es vulnerable actualmente, "un cambio inadvertido a un archivo de configuración de Struts puede hacer que la aplicación sea vulnerable en el futuro".

Razón por la qué debería tomar en serio el exploit de Apache Struts

Hace menos de un año, la agencia calificadora de riesgo crediticio Equifax expuso detalles personales de sus 147 millones de clientes debido a que no corrigieron una falla similar de Apache Struts que se reveló con antelación (CVE-2017-5638).

El incumplimiento de Equifax le costó a la compañía más de $600 millones en pérdidas.

"Struts se usa para sitios web accesibles y orientados al público, los sistemas vulnerables se identifican fácilmente y el error es fácil de explotar", dijo Pavel Avgustinov, cofundador y vicepresidente de QL Engineering en Semmle.

"Un hacker puede encontrar su camino en minutos y puede filtrar datos o realizar ataques adicionales desde el sistema comprometido".

Parche lanzado para la falla critica en Apache Struts

Apache Struts ha solucionado la vulnerabilidad con el lanzamiento de las versiones 2.3.35 y 2.5.17 de Struts. Se recomienda urgentemente a las organizaciones y desarrolladores que utilizan Apache Struts actualizar sus componentes Struts lo antes posible.

Hemos visto cómo las revelaciones previas de fallas críticas similares en Apache Struts han resultado en exploits de PoC publicados en un día, y la explotación de la vulnerabilidad en el medio, poniendo en riesgo la infraestructura crítica y los datos de los clientes.

Por lo tanto, se recomienda encarecidamente a los usuarios y administradores que actualicen sus componentes de Apache Struts a las últimas versiones, incluso si consideran que su configuración no es vulnerable en este momento.

Esta no es la primera vez que el Equipo de Investigación de Seguridad de Semmle informa una falla crítica de ejecución remota de código en Apache Struts. Hace menos de un año, el equipo reveló una vulnerabilidad de ejecución remota de código similar (CVE-2017-9805) en Apache Struts.

Artículos relacionados: