Une autre vulnérabilité dans Apache httpd qui permet l'accès en dehors du répertoire racine du site

Un nouveau vecteur d'attaque a été trouvé pour le serveur http Apache, resté non corrigé dans la mise à jour 2.4.50 et permettant l'accès à des fichiers depuis des zones situées en dehors du répertoire racine du site. De plus, les chercheurs ont trouvé une méthode qui permet, en présence de certains paramètres non standards, non seulement de lire les fichiers système, mais aussi d'exécuter à distance leur code 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 affectées. Pour éliminer la nouvelle vulnérabilité, Apache httpd 2.4.51 a été rapidement publié.

À la base, le nouveau problème (CVE-2021-42013) est complètement similaire à la vulnérabilité d'origine (CVE-2021-41773) dans la version 2.4.49, la seule différence est un encodage différent des caractères « .. ». En particulier, dans la version 2.4.50, la possibilité d'utiliser la séquence "%2e" pour encoder un point était bloquée, mais la possibilité d'un double encodage était manquée - lors de la spécification de la séquence "%%32%65", le serveur l'a décodée dans « %2e », puis dans «  », c'est-à-dire les caractères "../" pour aller au répertoire précédent pourraient être codés comme ".%%32%65/".

Quant à l'exploitation de la vulnérabilité via l'exécution de code, cela est possible lorsque mod_cgi est activé et que le chemin de base est utilisé dans lequel l'exécution de scripts CGI est autorisée (par exemple, si la directive ScriptAlias ​​​​est activée ou si l'indicateur ExecCGI est spécifié dans le directive sur les options). Une condition obligatoire pour une attaque réussie est également de fournir explicitement un accès aux répertoires contenant des fichiers exécutables, tels que /bin, ou un accès à la racine du système de fichiers « / » dans les paramètres Apache. Étant donné qu’un tel accès n’est généralement pas accordé, les attaques par exécution de code ont peu d’application sur les systèmes réels.

Dans le même temps, l'attaque visant à obtenir le contenu de fichiers système arbitraires et les textes sources de scripts Web, lisibles par l'utilisateur sous lesquels s'exécute le serveur http, reste d'actualité. Pour mener une telle attaque, il suffit d'avoir un répertoire sur le site configuré à l'aide des directives « Alias ​​» ou « ScriptAlias ​​» (DocumentRoot ne suffit pas), comme « cgi-bin ».

Un exemple d'exploit qui permet d'exécuter l'utilitaire « id » sur le serveur : curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'echo Content-Type : texte/plain ; écho; id' uid=1(démon) gid=1(démon) groups=1(démon)

Un exemple d'exploits qui permet d'afficher le contenu de /etc/passwd et un des scripts web (pour sortir le code du script, il faut préciser le répertoire défini via la directive « Alias ​​», pour lequel l'exécution du script n'est pas activée comme répertoire de base) : curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' curl 'http://32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

Le problème affecte principalement les distributions continuellement mises à jour telles que Fedora, Arch Linux et Gentoo, ainsi que les ports de FreeBSD. Les packages des branches stables des distributions de serveur conservatrices Debian, RHEL, Ubuntu et SUSE ne sont pas affectés par la vulnérabilité. Le problème ne se produit pas si l'accès aux répertoires est explicitement refusé à l'aide du paramètre « exiger tout refusé ».

Source: opennet.ru

Ajouter un commentaire