
# cve-2025-32463 - Lokale Privilegienerweiterung auf Root über Sudo chroot unter Linux
sudo chroot <dir name> <command>
Führt den Befehl command im ausgewählten Verzeichnis dir name aus.
Dieses Problem wurde in sudo v1.9.14 eingeführt. Diese Version aktualisierte den Abgleichcode, der bei Verwendung der chroot-Funktion zum Einsatz kommt.

Diese Änderung bewirkt, dass die ID des Wurzelverzeichnisses geändert wird, bevor der Befehl chroot abgeglichen wird. Die entsprechenden Funktionen sind in plugins/sudoers/pivot.c definiert. In dieser Datei (inzwischen entfernt) sind die Funktionen pivot_root() und unpivot_root() definiert, die die Abgleichlogik für chroot behandeln. Der Aufruf dieser beiden Funktionen löst Name Service Switch (NSS)-Operationen aus, wodurch das System die Konfigurationsdatei /etc/nsswitch.conf aus einer nicht vertrauenswürdigen Umgebung lädt (da chroot die ID des aktuellen Wurzelverzeichnisses bereits geändert hat). Diese Konfigurationsdatei enthält Anweisungen, die dem System mitteilen, wie Informationen über Benutzer, Gruppen und Hosts abgerufen werden. Sie kann mehrere Quellen auflisten, die der Reihe nach durchsucht werden, bis ein passender Eintrag gefunden wird.
Da /etc/nsswitch.conf viele Zeileneinträge enthält, erfolgt die Suche nach Informationen in der Reihenfolge der Zeileneinträge. Der entscheidende Punkt der Schwachstelle ist: Bei der Quellensuche in der Datei nsswitch.conf wird der Quellenname als Teil des Pfads für das Shared Object verwendet; so wird beispielsweise die Quelle ldap zu libnss_ldap.so. Wenn die NSS-Funktion die Quelle ldap verwendet, wird diese Bibliothek geladen.
Für einen Angreifer lösen der Aufruf von pivot_root() und unpivot_root() NSS-Operationen aus. Der Angreifer kann daher unter einem kontrollierbaren Pfad ein chroot-Wurzelverzeichnis konstruieren, das die Datei /etc/nsswitch.conf sowie bösartige Bibliotheksdateien enthält. Der Namensdienst kann auf ein benutzerdefiniertes NSS-Modul verweisen, in dem eine bösartige Shared Library platziert werden kann.
Wenn der Angreifer sudo -R <fake_root_dir> <command> ausführt, um einen Befehl im chroot-Modus auszuführen, ruft sudo die systemeigene NSS auf, um Benutzer-/Gruppeninformationen aufzulösen, noch bevor die Berechtigungen vollständig verifiziert wurden. Dabei wird die gefälschte /etc/nsswitch.conf gelesen, die auf das bösartige NSS-Modul verweist. Zu diesem Zeitpunkt ist der sudo-Prozess bereits in das gefälschte Wurzelverzeichnis gewechselt und läuft weiterhin mit Root-Rechten. Daher wird der bösartige Shared-Library-Code des Angreifers mit Root-Rechten geladen und ausgeführt.
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