
# cve-2025-32463 - Élévation locale de privilèges vers root via Sudo chroot sous Linux
sudo chroot <dir name> <command>
Exécute la commande command dans le répertoire dir name sélectionné.
Ce problème a été introduit dans sudo v1.9.14. Cette version a mis à jour le code de traitement de correspondance utilisé lorsque la fonctionnalité chroot est employée.

Ce changement fait que l'identifiant du répertoire racine est modifié avant la correspondance de la commande chroot. Les fonctions concernées sont définies dans plugins/sudoers/pivot.c. Ce fichier (désormais supprimé) définissait les fonctions pivot_root() et unpivot_root() pour gérer la logique de correspondance de chroot. L'appel de ces deux fonctions déclenche une opération de commutation de service de noms (NSS), ce qui amène le système à charger le fichier de configuration /etc/nsswitch.conf depuis un environnement non fiable (car le chroot a déjà changé l'identifiant du répertoire racine actuel). Ce fichier de configuration contient des directives indiquant au système comment récupérer les informations sur les utilisateurs, les groupes et les hôtes ; il peut lister plusieurs sources, recherchées en séquence jusqu'à ce qu'une correspondance soit trouvée.
Comme /etc/nsswitch.conf contient de nombreuses entrées, la recherche d'informations s'effectue dans l'ordre de ces entrées. Le point clé de la vulnérabilité est le suivant : lors de la recherche de sources dans le fichier nsswitch.conf, le nom de la source est utilisé comme partie du chemin de l'objet partagé. Par exemple, la source ldap est transformée en libnss_ldap.so. Lorsque les fonctions NSS utilisent la source ldap, cette bibliothèque est chargée.
Pour un attaquant, appeler pivot_root() et unpivot_root() déclenche des opérations NSS. L'attaquant peut donc construire un répertoire racine chroot sous un chemin contrôlé, contenant le fichier /etc/nsswitch.conf ainsi que des bibliothèques malveillantes. Le service de noms peut être dirigé vers un module NSS personnalisé, dans lequel une bibliothèque partagée malveillante peut être forgée.
Lorsqu'un attaquant exécute sudo -R <fake_root_dir> <command> pour tenter d'exécuter une commande en mode chroot, sudo appelle le NSS du système pour résoudre les informations utilisateur/groupe avant d'avoir complètement vérifié les permissions. Il lit le faux /etc/nsswitch.conf pointant vers un module NSS malveillant. À ce moment, le processus sudo est déjà passé dans le faux répertoire racine et s'exécute toujours avec les privilèges root ; il charge et exécute donc le code de la bibliothèque partagée malveillante de l'attaquant avec les privilèges root.
git clone https://github.com/Spongebob-369/cve-2025-32463.git
cd cve-2025-32463
chmod +x run.sh
./run.sh
# after entering the contain Ubuntu
./sudo-chroot.sh
id