
Copy-Fail-CVE-2026-31431-Lab — Updated!
Riprodotta la LPE senza file CVE‑2026‑31431 (“Copy Fail”) su Kali Linux, quindi costruiti rilevamenti auditd, Sigma e YARA per intercettare questo exploit stealth del kernel che non lascia tracce su disco.
Copy Fail (CVE-2026-31431) — Laboratorio di Riproduzione & Rilevamento Exploit
Questo repository documenta la riproduzione end-to-end, l'ingegneria del rilevamento e la risposta agli incidenti per CVE-2026-31431 ("Copy Fail"), una critica vulnerabilità di escalation dei privilegi locale nel kernel Linux che interessa i kernel dalla versione 4.14 fino alla 7.0-rc.
Risultati Chiave
- ✅ Sfruttato con successo CVE-2026-31431 su Kali Linux 2026.1 (kernel 6.18.12+kali-amd64)
- ✅ Implementate regole di rilevamento a livello di syscall auditd
- ✅ Create regole Sigma e YARA per il rilevamento cross-platform
- ✅ Sviluppato un playbook completo per la risposta agli incidenti
Perché è Importante
Copy Fail è un difetto logico, non una corruzione di memoria. È deterministico, interessa praticamente ogni distribuzione Linux rilasciata dal 2017, ed è completamente fileless—il tradizionale monitoraggio dell'integrità dei file (AIDE, Tripwire) non può vederlo. Un proof-of-concept funzionante occupa solo 732 byte di Python.
Ambiente di Laboratorio
| Componente | Dettagli |
|---|---|
| Hypervisor | VirtualBox |
| VM target | Kali Linux 2026.1 |
| Kernel | 6.18.12+kali-amd64 |
| PoC dell'exploit | theori-io/copy-fail-CVE-2026-31431 |
| Rilevamento | auditd, Sigma, YARA |
Passaggi di Riproduzione
1. Verifica Versione Kali e Kernel
Il laboratorio inizia confermando che il target esegua un kernel vulnerabile.
Dettagli del kernel e della release Kali Linux 2026.1.
Output di uname -r che mostra il kernel vulnerabile 6.18.12+kali-amd64.
2. Verifica del Modulo Vulnerabile
L'exploit richiede il modulo kernel algif_aead e il template crittografico authencesn.
Modulo Caricato
lsmod e modinfo confermano che algif_aead è disponibile; /proc/crypto mostra il template vulnerabile authencesn.
3. Versione Python
Il PoC utilizza os.splice, che richiede Python 3.10+. Verifichiamo l'interprete.
Versione Python Python 3.12 è installato e pronto.
4. Check di Vulnerabilità (Non Distruttivo)
Prima di eseguire l'exploit completo, un controllo sicuro conferma che il sistema è vulnerabile.
Il checker riporta "potenzialmente vulnerabile", aprendo la strada allo sfruttamento.
5. Creazione di un Utente Non Privilegiato
Viene creato un account testuser non privilegiato per simulare un attaccante senza diritti speciali.
id mostra UID 1001, confermando l'accesso non root.
6. Clonazione ed Esecuzione dell'Exploit
Il PoC ufficiale di Theori viene clonato ed eseguito dall'account non privilegiato.
Repository dell'exploit clonato con successo.
Esecuzione Exploit
L'exploit Python sovrascrive la cache delle pagine e fa detonare il binario /usr/bin/su corrotto.
L'output di whoami e id prova l'escalation completa a root.
7. Verifica della Natura Fileless (Nessuna Modifica su Disco)
L'exploit corrompe solo la cache delle pagine in memoria. Il file /usr/bin/su su disco mantiene il suo checksum originale.
SHA256 Match
Il sha256sum corrisponde all'hash del pacchetto originale anche dopo lo sfruttamento, confermando l'assenza di modifiche su disco.
Ingegneria del Rilevamento
Copy Fail non può essere rilevato dal monitoraggio dell'integrità dei file. Invece, ci concentriamo sulle primitive a livello di syscall che utilizza.
Regole auditd
Implementiamo regole auditd personalizzate che si attivano per:
- Creazione di socket
AF_ALG(famiglia 38) - Utilizzo della syscall
splice() - Accesso in lettura a binari setuid da parte di processi non privilegiati
Tutte le regole personalizzate sono attive, verificate con auditctl -l.
Dopo aver eseguito l'exploit una seconda volta, vediamo alert per le syscall esatte utilizzate:
ausearch mostra un evento di creazione socket AF_ALG dal processo testuser.
ausearch mostra un evento splice() dallo stesso PID, una forte correlazione.
Regola Sigma
Una regola Sigma traduce i risultati di auditd in un formato SIEM vendor-neutral.
Regola YAML Sigma che rileva la creazione di socket AF_ALG e le chiamate splice().
Regola YARA
Una regola YARA aiuta a identificare il codice dell'exploit Copy Fail su disco.
Regola YARA che corrisponde alla stringa authencesn, alle costanti dei socket e ai riferimenti a splice() trovati nei PoC.
Riepilogo Copertura del Rilevamento
| Livello | Cosa Vede | Stato |
|---|---|---|
| auditd | Socket AF_ALG + syscall splice | ✅ Implementato |
| Sigma | Pattern di syscall tramite SIEM | ✅ Regola pronta |
| YARA | Codice PoC su disco | ✅ Regola pronta |
| FIM (AIDE/Tripwire) | Modifiche ai file | ❌ Cieco – nessuna scrittura su disco |
Playbook di Risposta agli Incidenti
Un report completo di risposta agli incidenti è disponibile in reports/incident-copy-fail.md. Include:
- Riepilogo esecutivo
- Indicatori di compromissione (IoCs)
- Mappatura MITRE ATT&CK (T1068, T1611)
- Passaggi di contenimento ed eradicazione
- Lezioni apprese riguardo agli attacchi fileless
Mitigazione
Mitigazione immediata (senza bisogno di riavvio):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead