Una falla in Linux KVM ARM64 consente agli ospiti di raggiungere la memoria dell'host

Una falla in Linux KVM ARM64 consente agli ospiti di raggiungere la memoria dell'host

CVE-2026-89775, una falla di Linux KVM su ARM64, consente a un ospite di leggere e scrivere memoria dell'host liberata e di uscire, ma solo dove è abilitata la virtualizzazione annidata.

Una falla recentemente divulgata nel codice di virtualizzazione KVM del kernel Linux per processori ARM64 può lasciare una pagina di memoria dell'host liberata leggibile e scrivibile da una macchina virtuale in esecuzione sulla stessa macchina fisica, secondo il ricercatore che l'ha scoperta. Il bug è tracciato come CVE-2026-89775 ed è corretto in Linux 6.18.51, 7.2.5 e 7.3-rc1. KVM, acronimo di Kernel-based Virtual Machine, è la parte integrata in Linux che consente a un computer fisico di eseguire contemporaneamente diversi computer virtuali separati. L'host è la macchina reale sottostante; un ospite è una delle macchine virtuali in esecuzione su di essa. La falla non riguarda ogni sistema Linux, e i fornitori che la valutano ne giudicano l'impatto elevato concordando però che raggiungerla è difficile, perché conta solo dove è stata deliberatamente attivata una funzione usata di rado chiamata virtualizzazione annidata.

Il difetto si trova nella sezione di KVM che gestisce la virtualizzazione annidata su ARM64, il design di processore a 64 bit usato in molti server e data center cloud. La virtualizzazione annidata significa che a un ospite è permesso eseguire il proprio hypervisor, lo strato software che normalmente crea e gestisce le macchine virtuali, così un ospite può ospitare macchine virtuali proprie. Quando un ospite organizza la propria memoria in un certo modo, un calcolo di dimensione nel kernel risulta zero. Ciò fa sì che venga saltato un passaggio che dovrebbe cancellare le voci obsolete dal translation lookaside buffer del processore; quel buffer è una piccola e velocissima cache che registra dove si trovano attualmente le porzioni di memoria. Poiché la cancellazione, nota come invalidazione del TLB, non avviene mai, una pagina di memoria dell'host che il kernel ha già liberato resta mappata e scrivibile per l'ospite. L'ospite può quindi leggere e scrivere quella memoria 64 bit alla volta, e nessun trap hardware restituisce il controllo all'host mentre lo fa.

Hyunwoo Kim, il ricercatore di sicurezza che ha segnalato la falla, l'ha divulgata il 16 settembre e afferma che un ospite può usarla per uscire dalla propria macchina virtuale ed eseguire codice sulla macchina fisica sottostante, un esito noto come escape da ospite a host. Questo è lo scenario peggiore, non quello quotidiano: nessun codice di exploit è stato pubblicato, e non c'è alcun segno che la falla sia stata usata in un attacco.

I limiti su chi è esposto contano quanto il bug stesso. La virtualizzazione annidata è disattivata per impostazione predefinita su ARM64. È una modalità sperimentale all'avvio che richiede hardware Armv8.4 con una funzione del processore chiamata FEAT_NV2, e un normale host KVM ARM64 che non la attiva mai è fuori dal percorso di attacco segnalato. Le macchine a rischio, quindi, sono quelle i cui operatori hanno deliberatamente abilitato la capacità, di solito perché vogliono eseguire macchine virtuali dentro macchine virtuali per test, sviluppo o un servizio specializzato.

C'è anche qualche disaccordo su quanto indietro arrivi il problema. Il registro del kernel stesso elenca il codice interessato come presente da Linux 6.16, ma l'autore della correzione l'ha etichettata rispetto a una modifica successiva, e il maintainer che ha revisionato e testato la patch ha detto che l'invalidazione mancata inizia solo dalla v6.17. Secondo questa versione, un host sulla 6.16 porta il codice ma non il comportamento di cui un attaccante ha bisogno.

Kim descrive un secondo modo di abusare della stessa falla. Sui sistemi in cui a qualsiasi utente è permesso aprire /dev/kvm, il file di dispositivo che un programma usa per creare una macchina virtuale, un utente locale che ha già un account sulla macchina potrebbe costruire un ospite e usare il bug per ottenere root, l'account amministratore che ha il pieno controllo di un sistema Linux. Egli indica Red Hat Enterprise Linux, dove quel dispositivo è aperto a tutti gli utenti per impostazione predefinita. Red Hat elenca il suo kernel versione 10 come interessato e le versioni da 6 a 9 come non interessate. Questa via richiede comunque che l'host abbia la virtualizzazione annidata abilitata.

Le correzioni stanno arrivando secondo i tempi di ciascun fornitore. A monte, la falla è riparata in Linux 6.18.51, 7.2.5 e 7.3-rc1. Su Ubuntu, la versione 26.04 è vulnerabile, inclusi i suoi kernel per Amazon Web Services, Microsoft Azure e Google Cloud, mentre il kernel generale della 24.04 LTS non è interessato; i kernel più recenti di abilitazione hardware di Ubuntu, 6.17 e 7.0, sono vulnerabili. Su Amazon Linux, il pacchetto kernel6.18 di AL2023 è ancora in attesa di una correzione, e altri kernel di Amazon Linux non sono interessati. Le release bookworm e trixie di Debian non sono interessate perché il codice non è presente, sid è corretto nella 7.2.6-1, e forky è vulnerabile. Per gli host che non possono ancora essere corretti, Red Hat afferma che nessuna mitigazione soddisfa i suoi criteri per una soluzione alternativa.

I fornitori valutano la falla tra 7,8 e 9,3 su 10. Concordano che l'impatto è elevato e che l'attacco è locale, cioè non può essere lanciato attraverso una rete e un attaccante avrebbe già bisogno di un punto d'appoggio sulla macchina. La differenza riflette quanto ciascun fornitore ritiene difficile lo sfruttamento, e Ubuntu, che pubblica il valore di 9,3, imposta la propria priorità a medio. Al 22 settembre, la falla non era nel catalogo CISA statunitense delle vulnerabilità sfruttate, e il suo punteggio previsto di sfruttamento era inferiore all'1%.

La divulgazione solleva l'ovvia domanda se un inquilino del cloud potrebbe usare il bug per introdursi nelle macchine stesse di un fornitore. Sui maggiori fornitori, la configurazione necessaria non è offerta: Amazon Web Services elenca solo istanze basate su Intel per la virtualizzazione annidata, e Google Cloud ne esclude le sue macchine virtuali ARM. Non è un attestato di piena salute per quelle piattaforme, ma il percorso specifico di questa falla non è esposto nelle loro offerte ARM standard.

CVE-2026-89775 è il quarto escape da ospite a host di KVM che Kim divulga quest'anno. Due erano nella versione x86 di KVM: Januscape a luglio e Zapscape ad agosto. Quello a cui assomiglia di più è ITScape, un escape KVM ARM64 che ha pubblicato a giugno e descritto come il primo simile mostrato pubblicamente su ARM64.

Per i proprietari di siti web e i team IT, la domanda pratica è se le macchine su cui si basano rientrano nello stretto gruppo descritto sopra. La maggior parte dei piccoli siti si trova su hosting condiviso o gestito dove la virtualizzazione annidata non ha alcun ruolo, ma chiunque gestisca un server Linux basato su ARM, un cloud privato o un laboratorio di test dovrebbe controllare la versione del kernel rispetto all'elenco sopra e confermare se la virtualizzazione annidata è attivata o meno. Dove più persone condividono una macchina, vale la pena sapere se gli account ordinari possono aprire /dev/kvm, poiché è questa la configurazione dietro il secondo percorso di attacco. Per le organizzazioni che desiderano uno sguardo strutturato su come sono configurati i loro server e le loro macchine virtuali, AEU-I, il servizio di sicurezza informatica, infrastruttura e consulenza IT security-first di AEU Group, descrive cosa copre sulla propria pagina.

Come Proteggerti

  1. Chiedi al tuo provider di hosting se il tuo server è una macchina Linux basata su ARM con una funzione chiamata virtualizzazione annidata attivata, perché solo quelle macchine sono interessate da questo problema.
  2. Installa gli aggiornamenti di sistema che il tuo provider o il tuo team IT offre non appena arrivano, dato che la riparazione per questa falla viaggia dentro un normale aggiornamento Linux.
  3. Se gestisci personalmente il tuo server Linux, verifica con chi lo mantiene che la parte centrale di Linux sia stata aggiornata a una delle versioni corrette elencate dalla tua distribuzione, e non dare per scontato che l'aggiornamento del
  4. Se più persone possono accedere alla stessa macchina Linux, chiedi al tuo amministratore se un normale account utente è in grado di avviare macchine virtuali, perché è quella la configurazione in cui la falla potrebbe permettere a un accoun
  5. Se noleggi server cloud con chip ARM e non hai bisogno di eseguire macchine virtuali al loro interno, assicurati che quella funzione resti disattivata.

Vulnerabilità e Soluzioni

I Termini Spiegati

  • KVM Kernel-based Virtual Machine, la parte integrata in Linux che consente a un computer fisico di eseguire contemporaneamente diversi computer virtuali separati.
  • hypervisor Lo strato software che crea e gestisce le macchine virtuali su un computer fisico.
  • ARM64 Un design di processore a 64 bit usato in molti telefoni, laptop e server, in contrapposizione ai chip in stile Intel presenti nella maggior parte dei server più vecchi.
  • nested virtualization Un'impostazione che consente a una macchina virtuale di eseguire al proprio interno macchine virtuali proprie.
  • translation lookaside buffer Una piccola e velocissima memoria all'interno di un processore che tiene traccia di dove sono attualmente conservate le porzioni di memoria.
  • /dev/kvm Un file su un sistema Linux che i programmi usano per creare e controllare macchine virtuali; se gli utenti ordinari possano aprirlo dipende da come è configurata la macchina.
  • root L'account amministratore su un sistema Linux, che può modificare o eliminare qualsiasi cosa sulla macchina.
  • kernel La parte centrale di un sistema operativo come Linux, che si colloca tra l'hardware e i programmi in esecuzione su di esso.

Servizi AEU correlati