Une vulnérabilité (CVE-2022-31793) a été identifiée dans le serveur HTTP muhttpd, utilisé principalement dans les routeurs et les points d'accès, qui permet à un attaquant non authentifié de télécharger des fichiers arbitraires en envoyant une requête HTTP spécialement conçue, dans la mesure où les droits d'accès sous que le serveur HTTP exécute (sur de nombreux appareils, muhttpd s'exécute en tant que root). Par exemple, un attaquant peut accéder à des fichiers contenant des mots de passe, des paramètres d'accès sans fil, des paramètres de connexion au fournisseur et des clés privées.
Le problème est dû à une erreur de traitement du chemin dans la requête, qui permet d'accéder à des fichiers en dehors du répertoire racine du serveur Web. L'attaque se résume à préciser au début le chemin de tout caractère supplémentaire autre qu'un point, une barre oblique et une question. Par exemple, pour télécharger le fichier /etc/hosts, envoyez simplement la requête « GET a/etc/hosts » ou « GET a/etc/hosts » (printf « GET b/etc/hosts\n\n » | nc server port).
Ce comportement s'explique par le fait que le fichier demandé est ouvert à l'aide de la commande « open(&req->filename[1], O_RDONLY) » après une exécution préalable de la fonction chdir() pour accéder au répertoire racine. serveurs webSpécifier `&req->filename[1]` permet d'ignorer le premier caractère du chemin (les développeurs ont prévu que ce premier caractère soit toujours « / »). Par conséquent, lors d'une requête « GET /etc/hosts », le serveur tentera d'ouvrir le fichier au chemin relatif « etc/hosts », mais si vous spécifiez un caractère supplémentaire au début (« GET a/etc/hosts »), le chemin suivant sera traité intégralement.
Le problème est présent depuis la toute première version de muhttpd et a été corrigé dans la version 1.1.7. Parmi les appareils utilisant muhttpd, il a été confirmé que les routeurs SaskTel et Arris présentent le problème. Le problème pourrait également affecter les appareils fabriqués par AT&T, Frontier et Windstream. Lors de la restriction de l'accès au port HTTP uniquement pour le réseau interne, une attaque peut être menée depuis un réseau externe en utilisant la technique du « DNS rebinding », qui permet, lorsqu'un utilisateur ouvre une certaine page dans le navigateur, d'envoyer une requête HTTP. à un port réseau qui n’est pas accessible pour un accès direct via Internet.
Source: opennet.ru
