sábado, 8 de octubre de 2011

Revelación de información a través de 'mod_proxy' en Apache 2.x

Se ha publicado un fallo en el módulo 'mod_proxy' de Apache 2.x que podría permitir a un atacante obtener información sobre la red interna detrás de un servidor vulnerable.

'mod_proxy' es un módulo de Apache que desempeña la función de un proxy/gateway, permitiendo configuraciones 'forward' y 'reverse'.

La configuración 'forward proxy' actúa de intermediario entre el cliente y el servidor, y requiere que el cliente esté debidamente configurado para utilizarlo. El uso más común de este tipo de configuración es proporcionar acceso a Internet a usuarios que se encuentran en una intranet protegida por un cortafuegos.

Por otro lado, la configuración 'reverse proxy' es totalmente transparente al usuario, por lo que éste no necesita realizar ningún tipo de configuración especial. El uso típico de esta configuración es permitir a usuarios de Internet el acceso a servidores alojados tras un cortafuegos.





Sin embargo existe un fallo en el módulo 'mod_proxy', al utilizar las directivas 'RewriteRule' y 'ProxyPassMatch' para configurar un servidor Apache en modo 'reverse proxy' mediante coincidencias depatrones. Esto puede provocar que, de forma inadvertida, los servidores internos o no públicos queden expuestos, de tal manera que un atacante remoto obtenga información sensible a través de peticiones especialmente manipuladas.

El fallo está provocado por una configuración como la que sigue

RewriteRule (.*)\.(jpg|gif|png)     http://images.ejemplo.com$1.$2 [P]
ProxyPassMatch (.*)\.(jpg|gif|png)  http://images.ejemplo.com$1.$2

ya que, ante una petición de este tipo

GET @otro.ejemplo.com/otro.png HTTP/1.1

podría traducirse, por ejemplo, en:

http://images.ejemplo.com@otro.ejemplo.com/algo.png

lográndose una conexión a la máquina otro.ejemplo.com que en principio no debería ser accesible, confundiendo el sistema la parte izquierda de la URL con credenciales. Un atacante podría así obtener información de los sistemas internos de una red según la respuesta data ante la petición.







La siguiente configuración no se ve afectada por esta vulnerabilidad (nótese el carácter '/' antes de '$1.$2'):

RewriteRule (.*)\.(jpg|gif|png)     http://images.ejemplo.com/$1.$2 [P]
ProxyPassMatch (.*)\.(jpg|gif|png)  http://images.ejemplo.com/$1.$2

La vulnerabilidad tiene asignado el identificador CVE-2011-3368, y el parche para corregirla puede descargarse desde el siguiente enlace:


http://www.apache.org/dist/httpd/patches/apply_to_2.2.21/



Juan José Ruiz
jruiz@hispasec.com


Más información:

CVE-2011-3368 httpd: reverse web proxy vulnerability
https://bugzilla.redhat.com/show_bug.cgi?id=740045

No hay comentarios:

Publicar un comentario en la entrada