Apache ha confirmado una vulnerabilidad en el proyecto Apache Struts que podría permitir a un atacante remoto ejecutar código arbitrario.
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:
- 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)
- 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:
- El parámetro ‘alwaysSelectFullNamespace’ debe estar a ‘true’ en la configuración de Struts.
- El fichero de configuración de Struts contiene una etiqueta » 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
Semmle Discovers Critical Remote Code Execution Vulnerability in Apache Struts
Deja una respuesta