Attaque contre les systèmes de compilation en ligne via la manipulation des fichiers d'en-tête

Hanno Böck, auteur du projet fuzzing-project.org, remarqué sur la vulnérabilité des interfaces de compilation interactives permettant le traitement de code externe en langage C. Lors de la spécification d'un chemin arbitraire dans la directive "#include", une erreur de compilation inclut le contenu d'un fichier qui n'a pas pu être compilé.

Par exemple, en remplaçant « #include » dans le code de l'un des services en ligne "La sortie a permis d'obtenir un hachage du mot de passe de l'utilisateur root à partir du fichier /etc/shadow, ce qui indique également que le service Web s'exécute avec les droits root et exécute des commandes de compilation sous l'utilisateur root (il est possible qu'un conteneur isolé a été utilisé lors de la compilation, mais le lancement avec les droits root dans le conteneur pose également problème). Le service problématique dans lequel il a été possible de reproduire le problème n'est pas encore annoncé. Les tentatives d'ouverture de fichiers dans le pseudo FS /proc ont échoué car GCC les traite comme des fichiers vides, mais l'ouverture de fichiers à partir de /sys fonctionne.

Source: opennet.ru

Ajouter un commentaire