Il programma di bug bounty di Google ha chiuso i conti con una cifra importante, quasi EUR 306.910 distribuiti a chi ha portato alla luce due gravi vulnerabilità Linux, entrambe rimaste nascoste per anni dentro il codice del sistema operativo. La più pesante delle due permetteva a una macchina virtuale di sfuggire al proprio ambiente protetto e prendere il controllo, con privilegi di root, della macchina fisica che la ospitava. Roba seria, insomma, non un difetto qualsiasi.
La falla in questione porta la sigla CVE-2026-53359 ed è stata battezzata Januscape. Il dettaglio che colpisce di più è la sua longevità, perché è rimasta lì dentro KVM per sedici anni buoni senza che nessuno se ne accorgesse, sfuggendo al controllo di una montagna di esperti del settore. Tecnicamente si tratta di una vulnerabilità di tipo use-after-free, un tipo di corruzione della memoria che apre la porta all’iniezione di codice dannoso in aree di memoria appena liberate. Il punto debole si annidava nel processo di emulazione della shadow MMU, quello che si occupa di tradurre gli indirizzi di memoria tra host e hypervisor.
Come funzionavano gli attacchi
Per sfruttare Januscape bastava eseguire alcune azioni ben precise dal lato guest. Il problema diventa ancora più spinoso perché la falla poteva colpire anche gli ambienti cloud, anche se in quel caso serviva aver già ottenuto i diritti di root sulla macchina. Per questa scoperta Google ha staccato un assegno da EUR 219.221, la fetta più grande dell’intero premio.
La seconda vulnerabilità risponde al codice CVE-2026-43499 ed è stata chiamata GhostLock. Qui la ricompensa è stata di EUR 80.969, finiti nelle tasche del team di Nebula Security. Il difetto si nascondeva nei meccanismi di ereditarietà delle priorità dei futex del kernel, cioè quel sistema che dovrebbe impedire alle attività urgenti di restare bloccate a causa di processi secondari. In casi rari, quando un’operazione di blocco incontra un binario morto e deve tornare indietro, la procedura di pulizia interviene nel momento sbagliato. Risultato, cancella i registri dell’attività errata e lascia il kernel con in mano un puntatore a una memoria già liberata e riutilizzata.
Da lì, concatenando diversi passaggi a partire da quel puntatore instabile, i ricercatori sono riusciti a convincere il kernel a eseguire il loro codice con i massimi privilegi di sistema. Anche in questo caso parliamo di una falla vecchia parecchio, dato che il codice futex coinvolto risaliva addirittura al 2011 ed è rimasto per anni senza revisioni davvero approfondite. Due bug che, in comune, hanno proprio questa capacità di restare invisibili per lunghissimo tempo.