Un nouveau vecteur d'attaque a été découvert pour le serveur http Apache, qui n'a pas été corrigé dans la mise à jour 2.4.50 et permet d'accéder à des fichiers en dehors du répertoire racine du site. De plus, des chercheurs ont trouvé un moyen permettant, sous certaines configurations non standards, non seulement de lire des fichiers systÚme, mais aussi d'exécuter du code à distance sur le serveur. Le problÚme n'apparaßt que dans les versions 2.4.49 et 2.4.50, les versions antérieures ne sont pas vulnérables. Pour remédier à cette nouvelle variante de vulnérabilité, une mise à jour rapide d'Apache httpd 2.4.51 a été publiée.
En rĂ©alitĂ©, le nouveau problĂšme (CVE-2021-42013) est entiĂšrement similaire Ă la vulnĂ©rabilitĂ© d'origine (CVE-2021-41773) dans 2.4.49, la seule diffĂ©rence rĂ©sidant dans un encodage diffĂ©rent des caractĂšres «..». En particulier, dans la version 2.4.50, l'utilisation de la sĂ©quence «» pour encoder un point a Ă©tĂ© bloquĂ©e, mais la possibilitĂ© d'un double encodage a Ă©tĂ© nĂ©gligĂ©e â en spĂ©cifiant la sĂ©quence «%». serveur l'a dĂ©codĂ© en «», puis en «.», c'est-Ă -dire que les caractĂšres «.. /» pour remonter dans le rĂ©pertoire prĂ©cĂ©dent pouvaient ĂȘtre codĂ©s comme «.% /».
En ce qui concerne l'exploitation de la vulnérabilité par l'exécution de code, cela est possible si mod_cgi est activé et si le chemin de base autorise l'exécution de scripts CGI (par exemple, si la directive ScriptAlias est activée ou si le drapeau ExecCGI est spécifié dans la directive Options). Une exigence obligatoire pour réussir l'attaque est également de donner explicitement dans la configuration Apache l'accÚs aux répertoires contenant des fichiers exécutables, tels que \/bin, ou l'accÚs au répertoire racine du FS «\/». Comme cet accÚs n'est généralement pas accordé, l'attaque par exécution de code est peu applicable aux systÚmes réels.
Cependant, l'attaque visant à obtenir le contenu de fichiers systÚme arbitraires et de codes sources de scripts web accessibles en lecture pour l'utilisateur sous lequel le serveur http est exécuté reste d'actualité. Pour mener une telle attaque, il suffit d'avoir sur le site un répertoire configuré à l'aide des directives «Alias» ou «ScriptAlias» (DocumentRoot ne suffit pas), comme «cgi-bin».
Exemple d'exploit permettant d'exĂ©cuter l'utilitaire «id» sur le serveur: curl âhttp://192.168.0.1/cgi-bin/.%/.%/.%/.%/.%/bin/shâ âdata âecho Content-Type: text/plain; echo; idâ uid=1(daemon) gid=1(daemon) groups=1(daemon)
Exemple d'exploits permettant d'afficher le contenu /etc/passwd et l'un des scripts web (pour retourner le code des scripts en tant que base, un rĂ©pertoire doit ĂȘtre spĂ©cifiĂ© via la directive «Alias», pour lequel l'exĂ©cution des scripts n'est pas activĂ©e) : curl âhttp://192.168.0.1/cgi-bin/.%/.%/.%/.%/.%/etc/passwdâ curl âhttp://192.168.0.1/aliaseddir/.%/.%/.%/.%/.%/usr/local/apache2/cgi-bin/test.cgiâ
Le problÚme concerne principalement les distributions mises à jour continuellement, comme Fedora, Arch Linux et Gentoo, ainsi que les ports FreeBSD. Les paquets dans les branches stables des distributions serveurs conservatrices telles que Debian, RHEL, Ubuntu et SUSE ne sont pas vulnérables. Le problÚme ne se manifeste pas si l'accÚs aux répertoires est explicitement interdit par la configuration « require all denied ».
Source : opennet.ru
