
Copy Fail (CVE-2026-31431) exploit LPE. Una reimplementazione Python pulita e multi-architettura che mira alla vulnerabilità della cache di pagina AF_ALG del kernel Linux.
Escalatazione locale dei privilegi sui kernel Linux dalla versione 4.11 fino alle release 6.18 corrette (escluse).
Il bug risiede nell'interfaccia socket AF_ALG del kernel—in particolare nel modo in cui authencesn gestisce le liste scatter-gather durante la decrittazione AEAD in-place. Il risultato: un utente non privilegiato può sovrascrivere 4 byte alla volta nella page cache di qualsiasi file leggibile.
Sovrascrivi un binario setuid come /usr/bin/su con shellcode, eseguilo, e sei root. Nessuna race condition, nessun simbolo del kernel, nessuna ricompilazione. Lo stesso payload AArch64 da 172 byte (o 160 per x86-64, 126 per i386, 138 per ARMv7) funziona su tutte le distribuzioni.
La vulnerabilità è stata scoperta da Taeyang Lee & Theori / Xint Code e pubblicata il 29 aprile 2026. Questo repository è una reimplementazione indipendente, basata su classi, pensata per test autorizzati.
| Verifica della vulnerabilità | Exploit e ottenimento di root |
|---|---|
![]() | ![]() |
allowPrivilegeEscalation: true (il default di Kubernetes) può uscirne.Qualsiasi sistema con un kernel tra 4.11 e circa 6.17.x, inclusi:
Kernel corretti: mainline ≥ 6.18.22 / 6.19.12 / 7.0, più backport ai rami stabili.
# Verifica se il sistema è vulnerabile
python3 exploit.py --check
# Esegui l'exploit (richiesto utente non root)
python3 exploit.py
os.splice nativo dalla 3.10)authencesn(hmac(sha256),cbc(aes))/usr/bin/su è il default; usa --scan per trovare alternative)Se il controllo segnala un problema con l'algoritmo, carica i moduli necessari:
sudo modprobe algif_aead authencesn hmac cbc
Alcune distribuzioni includono un blocco temporaneo (/etc/modprobe.d/disable-algif_aead.conf). Lo script lo rimuove automaticamente quando eseguito come root, oppure puoi eliminarlo manualmente.
Permanente: Aggiorna il tuo kernel. Su Ubuntu/Debian:
sudo apt update && sudo apt upgrade linux-image-generic
Soluzione alternativa (non influisce su IPsec/XFRM):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
Nota: IPsec/XFRM non è influenzato da questo blocco perché usa direttamente l'API crittografica del kernel, non AF_ALG.
Container:
La mitigazione principale è bloccare il socket AF_ALG con un profilo seccomp. Inoltre, imposta allowPrivilegeEscalation: false nel contesto di sicurezza del tuo pod per abilitare no_new_privs, che impedisce al kernel di onorare i bit setuid su execve().
Questo strumento è destinato a test di sicurezza educativi e autorizzati. Non eseguirlo su sistemi che non possiedi o per i quali non hai il permesso scritto di testare.