Vulnérabilité sudo root affectant Linux Mint et Elementary OS

Dans l'utilitaire sudo, utilisé pour organiser l'exécution de commandes pour le compte d'autres utilisateurs, identifié vulnérabilité (CVE-2019-18634), qui vous permet d'augmenter vos privilèges dans le système en tant qu'utilisateur root. Le problème n'apparaît que depuis la sortie de sudo 1.7.1 lors de l'utilisation de l'option « pwfeedback » dans le fichier /etc/sudoers, qui est désactivée par défaut mais activée sur certaines distributions comme Linux Mint et Elementary OS. Problème résolu dans la version sudo 1.8.31, publié il y a quelques heures. La vulnérabilité reste non corrigée dans les kits de distribution.

L'option « pwfeedback » permet l'affichage du caractère « * » après chaque caractère saisi lors de la saisie d'un mot de passe. À cause de Erreurs Dans l'implémentation de la fonction getln(), définie dans le fichier tgetpass.c, une chaîne de mot de passe trop grande transmise via le flux d'entrée standard (stdin) dans certaines conditions peut ne pas rentrer dans le tampon alloué et écraser d'autres données sur la pile. Le débordement se produit lors de l'exécution du code sudo en tant que root.

L'essence du problème est que lors de l'utilisation du caractère spécial ^U (effacement de ligne) pendant la saisie et si l'opération d'écriture échoue, le code responsable de l'effacement des caractères « * » en sortie réinitialise les données sur la taille du tampon disponible, mais ne le fait pas. renvoie le pointeur à la position actuelle de la valeur initiale dans le tampon. Un autre facteur contribuant à l'exploitation est l'absence de désactivation automatique du mode « pwfeedback » lorsque les données n'arrivent pas du terminal, mais via le flux d'entrée (cette faille permet de créer les conditions pour qu'une erreur d'enregistrement se produise, par exemple, sur des systèmes avec unidirectionnel chaînes sans nom une erreur se produit lors de la tentative d'écriture à la fin d'un canal de lecture).

Puisqu'un attaquant a un contrôle total sur l'écrasement des données sur la pile, il n'est pas difficile de créer un exploit qui lui permet d'élever ses privilèges au niveau root. Le problème peut être exploité par n'importe quel utilisateur, quels que soient les autorisations sudo ou les paramètres spécifiques à l'utilisateur dans sudoers. Pour bloquer le problème, vous devez vous assurer qu'il n'y a pas de paramètre « pwfeedback » dans /etc/sudoers et, si nécessaire, le désactiver (« Valeurs par défaut !pwfeedback »). Pour vérifier s'il y a un problème, vous pouvez exécuter le code :

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S identifiant
Mot de passe : erreur de segmentation

Source: opennet.ru

Ajouter un commentaire