Nel bootloader GRUB2 8 vulnerabilità. La più pericolosa (, soprannominata BootHole, eludere il meccanismo UEFI Secure Boot e installare malware non certificato. Una particolare caratteristica di questa vulnerabilità è che, per risolverla, non è sufficiente aggiornare GRUB2, poiché l'attaccante può utilizzare un supporto di avvio con una vecchia versione vulnerabile, firmata digitalmente. L'attaccante può compromettere il processo di verifica non solo di Linux, ma anche di altri sistemi operativi, inclusi .
Il problema si risolve solo aggiornando il sistema (dbx, UEFI Revocation List), ma in tal caso si perderà la possibilità di utilizzare i vecchi supporti di installazione con Linux. Alcuni produttori di hardware hanno già incluso nelle loro firmware un elenco aggiornato di certificati revocati; su tali sistemi, in modalità UEFI Secure Boot sarà possibile avviare solo le versioni aggiornate delle distribuzioni Linux.
Per risolvere la vulnerabilità nei distribuzioni sarà necessario aggiornare anche gli installer, i bootloader, i pacchetti del kernel, i firmware fwupd e il bootloader shim, generando nuove firme digitali per questi. Gli utenti dovranno aggiornare le immagini di installazione e altri supporti di avvio, oltre a scaricare l'elenco dei certificati revocati (dbx) nel firmware UEFI. Fino all'aggiornamento del dbx in UEFI, il sistema rimarrà vulnerabile indipendentemente dagli aggiornamenti installati nel sistema operativo.
Vulnerabilità un buffer overflow, che può essere sfruttato per eseguire codice arbitrario durante il processo di avvio.
La vulnerabilità si manifesta durante l'analisi del contenuto del file di configurazione grub.cfg, normalmente situato nella partizione ESP (EFI System Partition) e che può essere modificato da un attaccante con diritti di amministratore, senza compromettere l'integrità dei file eseguibili firmati shim e GRUB2. A causa di Nel codice del parser di configurazione, il gestore degli errori fatali di parsing YY_FATAL_ERROR si limitava a fornire un avviso, senza terminare l'esecuzione del programma. Il rischio della vulnerabilità è ridotto dalla necessità di avere accesso privilegiato al sistema; tuttavia, il problema potrebbe rivelarsi utile per l'implementazione di rootkit nascosti in presenza di accesso fisico all'hardware (se è possibile avviare da un proprio supporto).
Nella maggior parte delle distribuzioni Linux, per il caricamento verificato viene utilizzato un piccolo , firmato digitalmente da Microsoft. Questo layer verifica GRUB2 con il proprio certificato, permettendo agli sviluppatori delle distribuzioni di non dover certificare ogni aggiornamento del kernel e di GRUB presso Microsoft. La vulnerabilità consente, attraverso la modifica del contenuto di grub.cfg, di eseguire il proprio codice in fase successiva alla verifica riuscita di shim, ma prima del caricamento del sistema operativo, infiltrandosi nella catena di fiducia durante l'attivazione della modalità Secure Boot e ottenendo il pieno controllo sul successivo processo di avvio, inclusa la possibilità di caricare un altro sistema operativo, modificare i componenti del sistema operativo e bypassare le protezioni. .
Altre vulnerabilità in GRUB2:
- — overflow del buffer a causa della mancanza di verifica della dimensione dell'area di memoria allocata in grub_malloc;
- — overflow intero in grub_squash_read_symlink, che potrebbe portare a scrivere dati oltre il buffer allocato;
- — overflow intero in read_section_from_string, che potrebbe portare a scrivere dati oltre il buffer allocato;
- — overflow intero in grub_ext2_read_link, che potrebbe portare a scrivere dati oltre il buffer allocato;
- — consente il caricamento di kernel non firmati durante il boot diretto in modalità Secure Boot senza un livello intermedio shim;
- — accesso a un'area di memoria già liberata (use-after-free) durante la ridefinizione di una funzione in esecuzione;
- — overflow intero nel gestore della dimensione initrd.
Gli aggiornamenti dei pacchetti con correzioni sono stati rilasciati per , , e . Per GRUB2 un insieme di patch.
Fonte: opennet.ru
