Falla decennale nel kernel Linux concede i privilegi di root

Una falla presente nel kernel Linux dal 2017 permette di ottenere privilegi root su tutte le principali distribuzioni con uno script di appena 732 byte. È disponibile la patch.

Autore: Redazione SecurityOpenLab

Una vulnerabilità critica nel cuore di Linux, monitorata con la sigla CVE-2026-31431 e soprannominata Copy Fail dai ricercatori che l'hanno scoperta, permette a chiunque abbia accesso locale a un sistema di assumere il controllo completo del sistema, aggirando qualsiasi controllo di sicurezza. La falla è presente in tutte le principali distribuzioni Linux rilasciate dal 2017 ed è rimasta invisibile per quasi un decennio; ora è stata corretta.

Si parla di falla critica perché nei sistemi Linux l’utente con accesso di root può leggere, modificare o cancellare qualsiasi file, installare software, intercettare comunicazioni, disabilitare meccanismi di sicurezza. La buona notizia è che per avviare l’attacco, il threat actor deve avere accesso locale, anche minimo. Gli scenari in cui questo si verifica sono, per esempio, i casi di un dipendente malintenzionato, di un account compromesso, di un container cloud con accesso condiviso al sistema operativo sottostante.

Per capire il meccanismo è necessario conoscere la modalità con cui Linux gestisce i programmi in esecuzione. Quando il sistema avvia un programma, ne carica una copia in memoria (page cache) per renderlo più veloce da eseguire. È quella copia in memoria, non il file originale su disco, che il sistema operativo effettivamente usa quando il programma viene eseguito. Copy Fail permette all'attaccante di alterare questa copia in memoria di qualsiasi file, senza mai toccare il file fisico su disco. La conseguenza è che il file originale rimane intatto e tutti gli strumenti di sicurezza che verificano l'integrità dei file non rilevano nulla di anomalo perché confrontano il file su disco, che è perfetto. Peccato che il sistema operativo esegua la versione in memoria, che è corrotta.

Il proof of concept pubblicato dai ricercatori è uno script Python di soli 732 byte (meno di una pagina di testo) che utilizza solo funzionalità standard e che funziona senza bisogno di modifiche su Ubuntu, Amazon Linux, Red Hat Enterprise Linux e SUSE, indipendentemente dall'architettura hardware. Il bersaglio predefinito è il comando di sistema noto come su (abbreviazione di substitute user), presente su praticamente ogni distribuzione Linux e utilizzato per ottenere i privilegi di root senza effettuare un nuovo accesso. L'exploit ne altera il codice in memoria, in modo che alla successiva esecuzione venga lanciato codice dell'attaccante al posto di quello originale. Poiché su ha storicamente i permessi di root, il codice dell'attaccante viene eseguito con pieno controllo del sistema.

La tecnica di attacco è critica per le infrastrutture cloud moderne, per via del fatto che la page cache in memoria è condivisa tra tutti i processi che girano sullo stesso sistema operativo, compresi quelli all'interno di container. Un attaccante che abbia compromesso anche un singolo container su un nodo Kubernetes potrebbe utilizzare Copy Fail per corrompere la memoria dell'host e ottenere il controllo dell'intero nodo, e da lì potenzialmente muoversi verso il resto del cluster. I ricercatori hanno preannunciato una seconda parte della ricerca dedicata specificamente a questo scenario.

Come nascondere una falla per quasi dieci anni

La vulnerabilità è nata dalla combinazione di tre modifiche al kernel apportate in momenti diversi nell'arco di sei anni, tutte innocue se prese singolarmente. Nel 2011 è stata aggiunta una funzione crittografica per la gestione dei numeri di sequenza nelle connessioni di rete sicure. Nel 2015 è stata introdotta la possibilità per applicazioni non privilegiate di usare le funzioni crittografiche del kernel. Nel 2017 è stata applicata un'ottimizzazione di performance che, senza che nessuno se ne accorgesse, ha messo in contatto queste tre componenti creando un percorso che non avrebbe mai dovuto esistere.

Come accennato in apertura, la correzione è disponibile per le versioni 6.18.22, 6.19.12 e 7.0 del kernel Linux. Le principali distribuzioni stanno distribuendo l'aggiornamento attraverso i normali canali di update. L'indicazione per gli amministratori di sistema è aggiornare il kernel il prima possibile. per chi fosse impossibilitato a farlo, è disponibile una mitigazione temporanea che consiste nel bloccare il modulo del kernel responsabile del segmento vulnerabile, impedendone il caricamento.


Visualizza la versione completa sul sito

Informativa
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, consulta la cookie policy. Chiudendo questo banner, acconsenti all’uso dei cookie.