CIFSwitch: un bug del Kernel Linux vecchio 19 anni che regala i permessi di root

Se dopo le intense scorse settimane vi erano mancate le CVE sul Kernel Linux, eccovene un’altra: si chiama CIFSwitch, è nascosta nel codice dal 2007, e sotto le giuste condizioni permette a un utente senza privilegi di ottenere accesso root completo al sistema. Questa volta però non parliamo di qualche trucco sulla page cache, ma di poche e semplici interazioni col Kernel che nessuno (forse) aveva notato per quasi due decenni. La CVE-2026-46243 e la Proof of Concept dell’attacco sono state rilasciate dall’esperto di sicurezza informatica di SpaceX Asim Viladi Oglu Manizada.

L’utility sotto attacco è CIFS con il suo pacchetto cifs-utils e consente di arrivare a una vera e propria Local Privilege Escalation (LPE).

Per dare un po’ di contesto, CIFS (Common Internet File System) è il protocollo che Linux usa per montare cartelle condivise da sistemi Windows o Samba, le classiche unità di rete che si trovano in azienda. Quando il mount usa l’autenticazione Kerberos, il Kernel delega il lavoro a una funzione esterna chiamata cifs.upcall, parte del pacchetto cifs-utils, che gira con privilegi di root e si occupa di recuperare le credenziali necessarie.

La comunicazione tra Kernel e questo helper avviene attraverso i Linux keyrings, un meccanismo del Kernel per gestire chiavi crittografiche e token di autenticazione. Ed è esattamente qui che le cose si fanno interessanti.

Il cuore del bug sta nel Kernel che non verifica che le richieste di chiavi cifs.spnego arrivino davvero dal client CIFS interno. Chiunque, anche un utente senza alcun privilegio, può inviare la stessa identica richiesta direttamente dallo spazio utente (tramite un pid controllato dall’attaccante) con campi completamente inventati e il Kernel la tratterà come se provenisse da una fonte fidata. Questo convince l’helper cifs.upcall a spostarsi nel namespace dell’attaccante prima di abbandonare i privilegi root. In questo modo, una semplice chiamata getpwuid() carica una libreria NSS malevola (piazzata lì in anticipo dall’attaccante) e consegna i privilegi di root. Il flusso completo dell’attacco è spiegato dal ricercatore in un blog post.

C’è da aggiungere però che Manizada non stava solo cercando una CVE, ma voleva verificare se gli LLM riescono a costruire catene di vulnerabilità non banali se dotati degli strumenti giusti. Ispirandosi al paper GraphWalk, ha infatti fatto costruire agli LLM un grafo semantico degli oggetti del kernel, mappando chi li consuma con privilegi, chi li crea e dove c’è drift, cioè dove l’origine di un oggetto smette di corrispondere a quello che il consumatore privilegiato si aspetta.

CIFSwitch è stata la conferma che l’approccio funziona: i modelli hanno analizzato sistematicamente le possibilità di attacco fino a trovare quella percorribile, arrivando autonomamente a una chain di exploit funzionante. L’autore infatti afferma:

Ultimately, I was curious if the models could build non-trivial, multihop chains given the right tools… while the primitives themselves are not groundbreaking, the chain is pretty neat

In definitiva, mi chiedevo se i modelli fossero in grado di costruire catene multihop non banali, se dotati degli strumenti giusti… anche se le primitive in sé non sono rivoluzionarie, la chain è davvero ingegnosa

Come difendersi?

Il bug colpisce solo chi ha installato cifs-utils con namespace utente non privilegiati abilitati e senza SELinux/AppArmor a fare da scudo. Distribuzioni come Ubuntu 18.04-24.04, Debian 11-13, Linux Mint, CentOS Stream 9, Rocky Linux 9 e Kali Linux rientrano nella categoria a rischio. Sono invece protette di default Ubuntu 26.04, Fedora 40-44 e Rocky/AlmaLinux 10.

La patch è già nel Kernel upstream. Chi non usa CIFS può rimuovere cifs-utils o mettere in blacklist il modulo senza aspettare aggiornamenti. Per tutti gli altri, vale la solita raccomandazione: tenete i pacchetti della vostra distro aggiornati.

Red Team & Offensive Security Engineer
Parlo di sicurezza informatica offensive, Linux e Open Source

Una risposta a “CIFSwitch: un bug del Kernel Linux vecchio 19 anni che regala i permessi di root”

  1. Avatar mimmus
    mimmus

    perché sarebbero protette di default Rocky/AlmaLinux (e presumo Red hat Linux) 10?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *