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
Deja una respuesta