Vulnérabilité dans sudo, permettant d'élever les privilèges avec des règles spécifiques

Dans l'outil Sudo, utilisé pour organiser l'exécution de commandes au nom d'autres utilisateurs, une vulnérabilité a été identifiée CVE-2020-10174 (CVE-2019-14287), ce qui permet d'exécuter des commandes avec des droits root, à condition qu'il existe dans les paramètres sudoers des règles interdisant explicitement l'exécution avec des droits root après le mot-clé d'autorisation «ALL» dans la section de vérification de l'identifiant utilisateur («… (ALL, !root) …»). Dans les configurations par défaut des distributions, la vulnérabilité ne se manifeste pas.

Si des règles autorisant l'exécution d'une certaine commande sous un identifiant UID d'un quelconque utilisateur autre que root existent dans sudoers, mais sont extrêmement rares dans la pratique, un attaquant ayant le droit d'exécuter cette commande peut contourner la restriction et exécuter la commande avec des droits root. Pour contourner la restriction, il suffit d'essayer d'exécuter la commande spécifiée dans les paramètres avec l'UID «-1» ou «4294967295», ce qui entraînera son exécution avec l'UID 0.

Par exemple, si dans les paramètres il existe une règle donnant à tout utilisateur le droit d'exécuter le programme /usr/bin/id sous n'importe quel UID :

myhost ALL = (ALL, !root) /usr/bin/id

ou une variante autorisant l'exécution seulement pour un utilisateur spécifique bob :

myhost bob = (ALL, !root) /usr/bin/id

L'utilisateur peut exécuter «sudo -u ‘#-1’ id» et l'utilitaire /usr/bin/id sera lancé avec des droits root, malgré l'interdiction explicite dans les paramètres. Le problème provient d'un oubli des valeurs spéciales «-1» ou «4294967295», qui ne changent pas l'UID, mais comme sudo s'exécute déjà sous root, la commande cible est également exécutée avec des droits root sans changement d'UID.

Dans les distributions SUSE et openSUSE, sans mentionner dans la règle «NOPASSWD», la vulnérabilité n'est pas exploitable, car dans sudoers par défaut, le mode «Defaults targetpw» est activé, où une vérification de l'UID est effectuée sur la base de données des mots de passe, avec une demande de saisie du mot de passe de l'utilisateur ciblé. Pour de tels systèmes, une attaque ne peut être réalisée que si des règles du type existent :

myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

Le problème a été résolu dans la version Sudo 1.8.28. Le correctif est également disponible sous forme de d'un correctif. Dans les distributions, la vulnérabilité a déjà été corrigée dans Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo et FreeBSD. Au moment de la rédaction de cette nouvelle, le problème demeure non résolu dans RHEL et Fedora. La vulnérabilité a été identifiée par des chercheurs en sécurité de la société Apple.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster