Actualización de seguridad para Apache Struts

Apache ha confirmado una vulnerabilidad en el proyecto Apache Struts que podría permitir a un atacante remoto ejecutar código arbitrario.


Struts es un entorno de trabajo de código abierto para el desarrollo de aplicaciones web en Java EE bajo el patrón MVC (Modelo Vista Controlador). Desarrollado por la Apache Software Foundation, en un primer momento formaba parte del proyecto Jakarta, convirtiéndose en proyecto independiente en 2005.

La vulnerabilidad, considerada de gravedad crítica (con CVE-2018-11776), se debe a una validación insuficiente de los datos introducidos por el usuario. Esta vulnerabilidad reside en el core del framework y existen varios vectores de ataque: 

  1. Cuando se utilizan resultados que no especifican un espacio de nombres (ni el el fichero de configuración de Struts ni en el propio código Java)
  2. Cuando se utiliza la etiqueta 'url' en una plantilla sin especificar una acción y un valor

A través de estos vectores un atacante remoto podría inyectar un espacio de nombres arbitrario pasándolo como parámetro en una petición HTTP.

Para que el ataque se haga efectivo, se tienen que cumplir dos condiciones:

  1. El parámetro 'alwaysSelectFullNamespace' debe estar a 'true' en la configuración de Struts.
  2. El fichero de configuración de Struts contiene una etiqueta '<action ...>' que no especifica ningún espacio de nombres.

La forma más sencilla para evitar las vulnerabilidades es actualizar a Apache Struts versiones 2.3.35 o 2.5.17; disponibles desde: http://struts.apache.org/download.html#struts-ga



Francisco Salido
[email protected]

Más información:

S2-057 - Apache Struts
https://cwiki.apache.org/confluence/display/WW/S2-057

Semmle Discovers Critical Remote Code Execution Vulnerability in Apache Struts
https://semmle.com/news/apache-struts-CVE-2018-11776

Via: unaaldia.hispasec.com
Actualización de seguridad para Apache Struts Actualización de seguridad para Apache Struts Reviewed by Dump3R H3id3gg3R on 16:51 Rating: 5