Buscar este blog

viernes, 6 de enero de 2012

Graves vulnerabilidades en Apache Struts

Han anunciado cuatro vulnerabilidades en Apache Struts (versiones 2.1.0 a 2.3.1), que permiten a un atacante remoto ejecutar código Java o sobreescribir archivos arbitrarios en el sistema objetivo.

Struts es una herramienta gratuita para el desarrollo de aplicaciones Web Java EE bajo el patrón de arquitectura de software Modelo-Vista-Controlador (MVC). Anteriormente fue desarrollada como parte del proyecto Jakarta de la Apache Software Foundation, actualmente es un proyecto independiente conocido como Apache Struts.

El primero de los problemas afecta a versiones menores a 2.2.1.1 y está relacionado con "ExceptionDelegator". Cuando se produce una excepción mientras se aplican los valores de los parámetros a propiedades, el valor puede ser evaluado como una expresión OGNL. Como los valores no son filtrados un atacante puede abusar de la potencia del lenguaje OGNL para ejecutar código Java arbitrario.

Otro de los problemas se debe a que la lista blanca de caracteres para nombres de parámetros no se aplica a "CookieInterceptor". Cuando Struts está configurado para tratar nombres de cookies, un atacante podría ejecutar comandos del sistema arbitrarios mediante métodos estáticos Java.

Por ultimo, determinadas entradas no son limpiadas adecuadamente por ParameterInterceptor antes de emplearse para crear archivos. Un atacante puede utilizar esto para crear archivos arbitrarios.

En el aviso oficial, también se incide en un problema, aunque no trata de una vulnerabilidad por sí misma. Se informa que las aplicaciones que se ejecutan en modo desarrollador y usan "DebuggingInterceptor" están expuestas a una ejecución remota de comandos.

Se recomienda actualizar a Struts 2.3.1.1 y aplicar el filtro "acceptedParamNames" más fuerte a "ParameterInterceptor" y 
"CookieInterceptor": acceptedParamNames = "[a-zA-Z0-9\.][()_']+";

Opina sobre esta noticia: 
http://unaaldia.hispasec.com/2012/01/graves-vulnerabilidades-remotas-en.html