Rischio Copy Fail Linux: l'exploit root invisibile in 4 byte

La vulnerabilità Copy Fail su Linux permette escalation root in 4 byte, corrompendo solo la RAM. Scopri l'impatto su Kubernetes e come mitigare la minaccia.

Contenuto

Rischio Copy Fail Linux: l'exploit root invisibile in 4 byte
Rischio Copy Fail Linux: l'exploit root invisibile in 4 byte

Nelle architetture computazionali moderne, l'integrità dei file su disco rappresenta da sempre il baluardo finale contro le manomissioni non autorizzate. Il 30 aprile 2026, ricercatori di sicurezza hanno svelato i dettagli della vulnerabilità 'Copy Fail' (CVE-2026-31431), un difetto logico deterministico nel kernel Linux che sovverte proprio questo assunto, consentendo a un utente locale senza privilegi di ottenere l'accesso root corrompendo esclusivamente la page cache in RAM, senza alterare fisicamente i file su disco e bypassando di fatto i sistemi di file integrity monitoring tradizionali.

Il meccanismo dell'exploit Copy Fail e l'assenza di race condition

Il 29 aprile 2026, le analisi tecniche hanno delineato l'esatta natura del difetto: Copy Fail è una vulnerabilità logica deterministica, priva di race condition, che risiede nel sottomodulo crypto algif_aead del kernel Linux, specificamente nel template authencesn. A differenza di bug storici come Dirty COW o Dirty Pipe, che richiedevano tecniche di sincronizzazione complessse per vincere le race condition, questo exploit agisce in modo deterministico, rendendo l'attacco estremamente affidabile e ripetibile. Il difetto trasforma le interfacce AF_ALG e splice in una primitiva di scrittura nella page cache.

Il team di ricerca sulle vulnerabilità di Xint.io e Theori ha spiegato il meccanismo cruciale dell'attacco: "An unprivileged local user can write four controlled bytes into the page cache of any readable file on a Linux system, and use that to gain root". La capacità di scrivere anche solo 4 byte controllati nella page cache di qualsiasi file leggibile si traduce in una superficie di attacco devastante. Nella pratica, l'exploit si concretizza in uno script Python di soli 732 byte che modifica un binario setuid, come /usr/bin/su, per ottenere i privilegi di root. La portata del difetto è amplificata dalla sua compatibilità: l'exploit funziona su essenzialmente tutte le distribuzioni Linux spedite dal 2017, con un CVSS score di 7.8.

La riflessione sulla classe di vulnerabilità è stata sintetizzata da David Brumley di Bugcrowd, che ha affermato: "Copy Fail is the same class of primitive, in a different subsystem". Questo sottolinea come le primitiva di scrittura nella page cache rimangano un problema strutturale ricorrente nelle architetture dei sistemi operativi, manifestandosi in sottosistemi diversi nel corso degli anni.

L'invisibilità dell'attacco e il limite dei sistemi di monitoraggio

L'angolazione più insidiosa della vulnerabilità Copy Fail risiede nella sua capacità di eludere i sistemi di rilevamento tradizionali. Come evidenziato il 29 aprile 2026, la pagina corrotta nella page cache non viene mai segnalata come 'dirty' dalla macchina di writeback del kernel. Di conseguenza, il kernel non avvia il processo di sincronizzazione della RAM verso il disco, lasciando il file fisico invariato. Gli strumenti di integrità basati su disco, che calcolano hash e firme dei file persistenti, non rilevano alcuna anomalia.

Questa invisibilità si estende anche alla persistenza: la modifica esiste unicamente nello spazio volatile della page cache e scompare completamente al riavvio del sistema. Per un analista di sicurezza, questo scenario rappresenta un incubo procedurale: l'attacco è effimero, non lascia tracce su disco e invalida le assunzioni su cui si basano sistemi di file integrity monitoring come Tripwire o AIDE. La compromissione avviene in un limbo transitorio dove l'esecuzione di codice privilegiato coesiste con l'apparente integrità del filesystem sottostante.

Impatto cross-container: il rischio per cluster Kubernetes e CI/CD

Il 30 aprile 2026, i ricercatori hanno sottolineato un'altra dimensione critica della vulnerabilità: il suo impatto cross-container. In Linux, la page cache è una struttura condivisa a livello di kernel e non è isolata dai confini dei container. Copy Fail non è quindi una semplice vulnerabilità di local privilege escalation, ma agisce come una primitiva di container escape e di compromissione del nodo Kubernetes stesso. Un utente senza privilegi all'interno di un container può sfruttare il difetto per scrivere nella page cache relativa a un file condiviso con l'host o con altri container, superando i confini di isolamento.

Un portavoce di Xint.io ha evidenziato l'universalità della minaccia: "This vulnerability is unique because it has four properties that almost never appear together: it's portable, tiny, stealthy, and cross-container". La combinazione di queste quattro caratteristiche rende gli ambienti shared, come i cluster Kubernetes e i runner CI/CD, esposti a un rischio catastrofico. In questi scenari, dove molteplici carichi di lavoro coesistono sulla stessa macchina host, la compromissione di un singolo container può rapidamente degenerare nel controllo totale del nodo, portando all'esfiltrazione di segreti, alla manipolazione delle pipeline di deploy o all'installazione di backdoor persistenti su macchine adiacenti.

Per sfruttare la vulnerabilità è necessario un punto di ingresso locale, condizione che nella pratica è comune in molte catene di attacco moderne: credenziali compromesse, un accesso SSH non privilegiato ottenuto tramite forza bruta, o una vulnerabilità applicativa remota che consenta l'esecuzione di codice. Una volta ottenuto l'accesso iniziale, Copy Fail garantisce l'escalation e l'attraversamento dei confini in modo inosservato.

Origini del bug e mitigazioni disponibili

Le radici della vulnerabilità affondano in un'ottimizzazione del codice introdotta nell'agosto del 2017 attraverso il commit del codice sorgente 72548b093ee3. Quell'ottimizzazione 'in-place' ha rotto un assunto di sicurezza critico rimasto inosservato per quasi un decennio. La scoperta della vulnerabilità, denominata copy.fail, è attribuita al team Xint Code Research Team, con il contributo iniziale del ricercatore Taeyang Lee.

Il 30 aprile 2026 è stato reso disponibile il fix nel commit mainline a664bf3d603d. La patch ufficiale elimina l'ottimizzazione introdotta nel 2017, separando le strutture di input e output e impedendo che le pagine della cache finiscano in una zona scrivibile. Per i sistemi che non possono essere aggiornati immediatamente, esistono mitigazioni pratiche: è possibile disabilitare il modulo vulnerabile utilizzando il comando echo “install algif_aead /bin/false” > /etc/modprobe.d/disable-algif-aead.conf, oppure bloccare la creazione di socket AF_ALG tramite seccomp per limitare la superficie di attacco a livello di container.

Domande frequenti

Come agisce la vulnerabilità Copy Fail su Linux?
Copy Fail (CVE-2026-31431) sfrutta un difetto logico deterministico nel sottomodulo crypto algif_aead, permettendo a un utente senza privilegi di scrivere 4 byte controllati nella page cache di qualsiasi file leggibile per ottenere i privilegi di root.
Perché gli strumenti di file integrity monitoring non rilevano l'exploit Copy Fail?
L'exploit corrompe esclusivamente la RAM nella page cache senza segnare la pagina come 'dirty'. Di conseguenza, il kernel non sincronizza la modifica su disco, il file fisico rimane invariato e gli strumenti basati su disco non rilevano alterazioni.
Qual è l'impatto di Copy Fail sugli ambienti Kubernetes e CI/CD?
L'impatto è cross-container poiché la page cache è condivisa tra tutti i processi del sistema. Questo permette a un attaccante di superare i confini dei container, rendendo Copy Fail una primitiva di container escape e di compromissione del nodo host per cluster Kubernetes e runner CI/CD.

Questo articolo è una sintesi basata esclusivamente sulle fonti elencate.

Fonti

Link utili

Apri l'articolo su DeafNews