
Exploit pour l'élévation locale de privilèges dans Sudo via un nsswitch.conf malveillant avec sudo -R. (CVE-2025-32463)
CVE-2025-32463 Élévation de privilèges locale dans Sudo via un nsswitch.conf malveillant avec sudo -R. Versions affectées 1.9.14 – 1.9.17
Sudo est un utilitaire en ligne de commande largement utilisé sur les systèmes de type Unix qui permet aux utilisateurs autorisés d'exécuter des commandes avec des privilèges élevés. Il joue un rôle essentiel dans l'application du principe du moindre privilège et le maintien d'une piste d'audit sécurisée des activités administratives.
La Stratascale Cyber Research Unit (CRU) a découvert deux vulnérabilités d'élévation de privilèges locale dans Sudo, dont l'une est CVE-2025-32463. Cette vulnérabilité affecte les versions de Sudo 1.9.14 à 1.9.17 et permet à des utilisateurs locaux non privilégiés d'obtenir un accès root en abusant de l'option --chroot (-R), même si aucune règle sudo n'est définie pour l'utilisateur.
Ce dépôt fournit une réimplémentation en Python de la preuve de concept (PoC) du script Bash original développé par l'équipe CRU. Il démontre comment parvenir à une exécution de code arbitraire en tant que root via un fichier nsswitch.conf spécialement conçu dans un environnement chroot contrôlé par l'utilisateur.
Identifiant CVE : CVE-2025-32463
Logiciel affecté : Sudo (versions 1.9.14 – 1.9.17)
Fonctionnalité vulnérable : option --chroot (-R)
Impact : Élévation de privilèges locale (non privilégié → root)
Prérequis d'exploitation :
Aucune permission sudo requise pour l'utilisateur
Capacité à exécuter sudo -R sur les versions vulnérables
Corrigé dans : Sudo 1.9.17p1
La vulnérabilité provient de la manière dont Sudo traite le fichier nsswitch.conf dans un environnement chrooté. Lorsqu'il est invoqué avec l'option --chroot, Sudo effectue plusieurs appels chroot() qui invoquent pivot_root(), et cet appel charge le fichier nsswitch.conf depuis un chemin contrôlé par l'attaquant.
En plaçant un fichier nsswitch.conf malveillant avec une source NSS personnalisée (par exemple, passwd: /woot1337) dans le répertoire chroot, et en fournissant un objet partagé malveillant correspondant (libnss_/woot1337.so.2), un attaquant peut amener Sudo à charger et exécuter du code arbitraire avec les privilèges root.
git clone https://github.com/pevinkumar10/CVE-2025-32463
cd CVE-2025-32463
pip3 install -r requirements.txt
python3 exploit.py
Cette version Python reproduit la logique du PoC Bash original de l'équipe Stratascale CRU. Elle crée un environnement root factice, compile un module NSS malveillant, prépare les conditions d'exploitation et invoque sudo -R pour déclencher la vulnérabilité.
La réimplémentation Python :
Automatise toute la chaîne d'exploitation
Améliore la portabilité et la lisibilité
Conserve le comportement et l'impact de l'exploit d'origine
Tout utilisateur local sur un système exécutant une version vulnérable de Sudo (1.9.14 - 1.9.17) peut obtenir un accès root sans avoir besoin d'aucune règle sudoers. Cela affecte les configurations Sudo par défaut.
Mettez à niveau vers Sudo 1.9.17p1 ou une version ultérieure
Évitez d'utiliser l'option --chroot obsolète
Vérifiez /etc/sudoers et /etc/sudoers.d pour les directives CHROOT= ou runchroot=
Auditez les fichiers journaux à la recherche de commandes Sudo utilisant CHROOT= via syslog ou les entrées journal
Plus de détails : https://www.sudo.ws/security/advisories/chroot_bug/
PoC Bash original : Stratascale Cyber Research Unit (CRU)
Vulnérabilité découverte par : Rich Mirch (CRU)
Remerciement au mainteneur : Todd C. Miller (Projet Sudo)
Avis de sécurité : https://www.sudo.ws/security/advisories/chroot_bug/
Ce PoC Python est publié sous la licence MIT. Le concept original de l'exploit et le crédit de divulgation reviennent à la Stratascale Cyber Research Unit.