viernes, 25 de noviembre de 2011

Un parche de Apache 2.x no soluciona realmente una vulnerabilidad

A principios de octubre alertamos sobre la vulnerabilidad presente en Apache 2.x. El fallo permitiría a un atacante acceder a partes de la red del servidor no habilitadas en un principio al público, a través de un fallo en la directiva "RewriteRule" del módulo "mod_proxy".

El parche anterior no soluciona totalmente la vulnerabilidad encontrada (CVE-2011-3368) puesto que no se llegaron a comprobar las URI basadas en esquemas. Por tanto, se podría volver a acceder de nuevo a partes sensibles de la red interna del servidor si las reglas del proxy inverso no se encuentran bien configuradas (como ocurría con la vulnerabilidad anterior).

Ejemplo:

En un servidor ya actualizado con el parche para CVE-2011-3368 y con una regla como la siguiente:

RewriteRule ^(.*) http://10.20.30.40$1
ProxyPassMatch ^(.*) http://10.20.30.40$1

Se conseguiría acceder a través de una petición como esta:

GET @localhost::8880 HTTP/1.0

Al recurso interno en http://10.20.30.40:8880. Pudiendo ser cualquier puerto de un servidor interno de la red, por ejemplo.

Una solución temporal consistiría en corregir las reglas iniciales, añadiendo el carácter "/".

RewriteRule ^(.*) http://10.20.30.40/$1
ProxyPassMatch ^(.*) http://10.20.30.40/$1

Se ha publicado un parche temporal para esta "nueva" vulnerabilidad a la que le ha sido asignado el CVE-2011-4317.

Más información:

[RFC] further proxy/rewrite URL validation security issue (CVE-2011-4317)

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

Apache HTTP Server Reverse Proxy/Rewrite URL Validation Issue



José Mesa Orihuela


No hay comentarios:

Publicar un comentario en la entrada