ProjectZero di Google trova un bug (già risolto) in KVM per AMD

kvm
kvm

Qualche tempo fa Google ha scelto di investire molte risorse per individuare (e magari risolvere) bug di sicurezza, in particolare effettuando analisi del codice per rendere i software più sicuri.
Il fatto che il Kernel sia il componente software più critico delle nostre macchine, e che Linux sia il progetto più groso del mondo open-source, spiegano facilmente come i risultati del “Project Zero” riguardino molto spesso proprio il nostro amato pinguino.

E in questi giorni il team ha trovato un errore nel codice di KVM.
KVM sta per Kernel-based Virtual Machine, un componente del Kernel che permette la virtualizzazione di altri sistemi. KVM si limita ad esporre delle funzionalità che poi altri programmi userland – normalmente QEMU, ma da qualche tempo anche VirtualBox – possono poi usare per gestire una macchina virtuale (VM – Virtual Machine).
L’essere integrato nel Kernel permette a KVM di offrire prestazioni molto elevate, sfruttando anche le capacità dedicate del particolare processore su cui sta girando, ma allo stesso tempo qualsiasi problema di sicurezza rischia di essere critico.

Hypervisor-KVM

In uno degli ultimi post pubblicati da Project Zero viene spiegato (molto dettagliatamente) come la gestione di macchine virtuali annidate, ovvero una macchina virtuale creata dentro un’altra macchina virtuale, non così insolito), avesse il problema di permettere l’accesso alla macchina host dalla macchina guest. Però, prerogativa di una VM, è essere completamente isolata dalle altre macchine, soprattutto l’host.
Questo bug è particolare non solo perché specifico delle CPU AMD, ma anche perché completamente relativo al Kernel. Infatti, fughe dal guest sulla macchina host non sono del tutto nuove, ma finora hanno sempre coinvolto un qualche errore anche nella parte userland. Questa volta, tutto è solo nel Kernel.

Il bug è già stato risolto: ne erano affette le versioni 5.10 e 5.11 del Kernel, ma in una delle ultime release candidate della 5.12 è stata applicata la fix – poi riportata anche alle alle 5.10 e 5.11. In totale, il problema è rimasto nel codice per circa 5 mesi: il pericolo è davvero modesto. Ma è tanto particolare da essere unico, e si spera rimarrà tale.

Un’ultima considerazione: per questo bug è stata creata la CVE-2021-29657, che però non fornisce alcun dato reale sul problema: né il nome del software impattato, né versioni del software e nemmeno una qualche spiegazione. Forse, il nuovo formato proposto per lo scambio delle vulnerabilità può davvero essere utile.

Ho coltivato la mia passione per l'informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

Tags: , ,