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
GhostShell — CVE-2026-31431 — Escalatazione dei privilegi locali tramite corruzione della cache delle pagine del kernel Linux | Kitploit
Strumenti/GitHubGitHub/razvanduda/ghostshell
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitPenetration TestingRed TeamingBinary Exploitation
GitHubrazvanduda/ghostshell

GhostShell

CVE-2026-31431 — Escalatazione dei privilegi locali tramite corruzione della cache delle pagine del kernel Linux

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

GhostShell

CVE-2026-31431 — Escalatazione dei Privilegi Locali tramite Corruzione della Page Cache del Kernel Linux

GhostShell è uno strumento di escalation dei privilegi locali che sfrutta una vulnerabilità nell'implementazione AEAD authencesn del kernel Linux per ottenere una shell di root da un account utente non privilegiato. Corrompe la page cache in memoria di un binario setuid-root (es. /usr/bin/su) inserendo shellcode al suo punto di ingresso, quindi lo esegue — ottenendo setuid(0) + setgid(0) e generando una /bin/sh privilegiata. Nessun file su disco viene modificato; viene interessata solo la page cache in memoria.

In breve: lo esegui come utente normale e ti porta in una shell di root.

Scoperto e divulgato da Theori / Xint. Analisi completa: copy.fail


Esempio di Output

root@kitploit:~
$ ./ghostshell

  CVE-2026-31431 'Copy Fail'

  Target:       /usr/bin/su
  Size:         63576 bytes
  Entry offset: 0x1a50
  Shellcode:    94 bytes (24 iterations)

  [*] Checking if kernel is vulnerable...
  [+] Kernel IS vulnerable.

  [*] Corrupting page cache of /usr/bin/su with shellcode...
  [*] Patching offset 0x01a50 (24/24) ...

  [*] Verifying page cache corruption...
  [+] Shellcode verified in page cache!

  [*] Executing corrupted setuid binary...
  [*] If successful, you should now have a root shell.
  [*] No trace on disk. Only ghosts in the cache.

# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#

Kernel Interessati

Linux 4.14 (agosto 2017) fino ai kernel corretti in aprile 2026.

Rimedio — Applicare la Patch a kmod

La correzione raccomandata per CVE-2026-31431 è applicare la patch al pacchetto kmod (utility dei moduli del kernel) che include il modulo cipher AEAD authencesn vulnerabile. I principali distributori hanno rilasciato pacchetti aggiornati che disabilitano o correggono il percorso di decrittazione in-place tramite splice().

Patch Rapida (Debian / Ubuntu)

root@kitploit:~
# Check current kmod version
modprobe --version

# Update to the patched version
sudo apt-get update
sudo apt-get install --only-upgrade kmod

# Verify the update
modprobe --version

Patch Rapida (RHEL / Fedora / Rocky / Alma)

root@kitploit:~
# Update kmod to the patched release
sudo dnf update kmod

# Verify
rpm -q kmod

Patch Rapida (Arch Linux)

root@kitploit:~
sudo pacman -Syu kmod

Verifica della Correzione del Kernel

Dopo aver applicato la patch a kmod, conferma che il modulo authencesn vulnerabile non sia più caricabile o sia stato aggiornato:

root@kitploit:~
# Attempt to load the module — on patched systems this should fail or report fixed version
modinfo authencesn

# Alternatively, check that the running kernel includes the April 2026 patch
uname -r   # should be >= the patched kernel version for your distro

Soluzione Alternativa (se la patch non è immediatamente possibile)

Se non puoi aggiornare kmod subito, puoi bloccare il caricamento del modulo cipher vulnerabile:

root@kitploit:~
# Blacklist the authencesn module
echo "install authencesn /bin/true" | sudo tee /etc/modprobe.d/disable-authencesn.conf

# Also blacklist the generic authenc module for good measure
echo "install authenc /bin/true" | sudo tee -a /etc/modprobe.d/disable-authencesn.conf

# Unload it if currently loaded (may fail if in use)
sudo modprobe -r authencesn 2>/dev/null

Riavvia dopo aver applicato la patch o la soluzione alternativa per garantire che eventuali voci corrotte nella page cache vengano cancellate.


Testato Su

OSKernel
Ubuntu 24.04 LTS6.17.0-22-generic

⚠️ Questo exploit è stato testato solo sul sistema sopra indicato. I risultati potrebbero variare su altre distribuzioni o versioni del kernel.


Prerequisiti

  • Un kernel Linux vulnerabile (vedi sopra)
  • GCC (o qualsiasi compilatore C)
  • Header UAPI del kernel Linux (<linux/if_alg.h>) — solitamente inclusi con linux-libc-dev
  • Un account utente non privilegiato (non serve root per eseguire l'exploit)

Installa le dipendenze di build su Ubuntu/Debian:

root@kitploit:~
sudo apt-get update
sudo apt-get install gcc linux-libc-dev

Build

root@kitploit:~
gcc -Wall -Wextra -o ghostshell ghostshell.c

Nessuna libreria esterna richiesta.


Utilizzo

Rilevamento automatico del target (controlla i comuni binari setuid come su, sudo, passwd):

root@kitploit:~
./ghostshell

Specifica manuale di un target:

root@kitploit:~
./ghostshell /usr/bin/sudo

Se il kernel è vulnerabile, verrai portato in una shell di root (#).


Come Funziona (Riepilogo)

  1. Verifica della vulnerabilità — Crea un file temporaneo, muta i suoi primi 4 byte tramite la primitiva AEAD, lo rilegge per confermare che la page cache sia stata modificata.
  2. Selezione del target — Rileva automaticamente un binario setuid-root e analizza l'header ELF64 per trovare l'offset del punto di ingresso _start.
  3. Corruzione della page cache — Scrive 94 byte di shellcode x86-64 al punto di ingresso, 4 byte per chiamata patch_chunk() (24 iterazioni), sfruttando il difetto di decrittazione in-place tramite splice() di AF_ALG.
  4. Esecuzione — Chiama execl() sul binario corrotto. Il kernel lo carica dalla page cache e lo shellcode viene eseguito con privilegi setuid-root, generando una shell di root.

Pulizia

L'exploit corrompe solo la page cache in memoria. Un semplice riavvio la cancella completamente.

Per svuotare le cache senza riavviare:

root@kitploit:~
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

Se le pagine dirty sono state riscritte su disco (improbabile ma possibile), reinstalla il pacchetto interessato:

root@kitploit:~
sudo apt-get install --reinstall util-linux   # for /usr/bin/su

Disclaimer

Questo strumento è fornito solo per scopi educativi e di ricerca sulla sicurezza autorizzata. L'uso non autorizzato contro sistemi di cui non si è proprietari o per i quali non si ha esplicito permesso di test è illegale. L'autore non si assume alcuna responsabilità per un uso improprio.


Licenza

Questo progetto è concesso in licenza sotto la MIT License.

È concessa l'autorizzazione, gratuitamente, a qualsiasi persona che ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), a trattare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, fondere, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e a consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:

L'avviso di copyright sopra indicato e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI MA NON LIMITATI ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRO, DERIVANTE DA, IN O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.

Scarica lo strumento