Vulnerabilità critica nel bootloader GRUB2 che consente di bypassare UEFI Secure Boot

Nel bootloader GRUB2 rivelato 8 vulnerabilità. Il più pericoloso problema (CVE-2020-10713), che ha il nome in codice BootHole, dare una possibilità bypassare il meccanismo UEFI Secure Boot e installare malware non verificato. La particolarità di questa vulnerabilità è che per eliminarla non è sufficiente aggiornare GRUB2, poiché l'aggressore può utilizzare un supporto avviabile con una vecchia versione vulnerabile certificata da una firma digitale. Un utente malintenzionato può compromettere il processo di verifica non solo di Linux, ma anche di altri sistemi operativi, inclusi Windows.

Il problema può essere risolto solo aggiornando il sistema elenco di revoche di certificati (dbx, UEFI Revocation List), ma in questo caso si perderà la possibilità di utilizzare i vecchi supporti di installazione con Linux. Alcuni produttori di apparecchiature hanno già incluso un elenco aggiornato dei certificati di revoca nel loro firmware; su tali sistemi, solo le build aggiornate delle distribuzioni Linux possono essere caricate in modalità UEFI Secure Boot.

Per eliminare la vulnerabilità nelle distribuzioni, dovrai anche aggiornare installatori, bootloader, pacchetti del kernel, firmware fwupd e livello shim, generando per loro nuove firme digitali. Agli utenti verrà richiesto di aggiornare le immagini di installazione e altri supporti di avvio, nonché di caricare un elenco di revoche di certificati (dbx) nel firmware UEFI. Prima di aggiornare dbx a UEFI, il sistema rimane vulnerabile indipendentemente dall'installazione degli aggiornamenti nel sistema operativo.

vulnerabilità causato un buffer overflow che può essere sfruttato per eseguire codice arbitrario durante il processo di avvio.
La vulnerabilità si verifica durante l'analisi del contenuto del file di configurazione grub.cfg, che di solito si trova nell'ESP (EFI System Partition) e può essere modificato da un utente malintenzionato con diritti di amministratore senza violare l'integrità dei file shim firmati e dei file eseguibili GRUB2. Per colpa di Errori nel codice del parser di configurazione, il gestore degli errori irreversibili di analisi YY_FATAL_ERROR visualizzava solo un avviso, ma non terminava il programma. Il rischio di vulnerabilità è ridotto dalla necessità di avere un accesso privilegiato al sistema; tuttavia, il problema potrebbe essere necessario per introdurre rootkit nascosti se esiste un accesso fisico all'apparecchiatura (se è possibile eseguire l'avvio dal proprio supporto).

La maggior parte delle distribuzioni Linux utilizzano small strato di spessore, firmato digitalmente da Microsoft. Questo livello verifica GRUB2 con il proprio certificato, che consente agli sviluppatori di distribuzioni di non far certificati da Microsoft tutti gli aggiornamenti del kernel e di GRUB. La vulnerabilità consente, modificando il contenuto di grub.cfg, di ottenere l'esecuzione del codice nella fase successiva alla verifica shim riuscita, ma prima del caricamento del sistema operativo, incuneandosi nella catena di fiducia quando la modalità Secure Boot è attiva e ottenendo il pieno controllo durante l'ulteriore processo di avvio, incluso il caricamento di un altro sistema operativo, la modifica dei componenti del sistema operativo e l'esclusione della protezione Lockdown.

Vulnerabilità critica nel bootloader GRUB2 che consente di bypassare UEFI Secure Boot

Altre vulnerabilità in GRUB2:

  • CVE-2020-14308 — overflow del buffer dovuto al mancato controllo della dimensione dell'area di memoria allocata in grub_malloc;
  • CVE-2020-14309 - un overflow di numeri interi in grub_squash_read_symlink, che può portare alla scrittura dei dati oltre il buffer allocato;
  • CVE-2020-14310 - overflow di numeri interi in read_section_from_string, che può portare alla scrittura di dati oltre il buffer allocato;
  • CVE-2020-14311 - un overflow di numeri interi in grub_ext2_read_link, che può portare alla scrittura dei dati oltre il buffer allocato;
  • CVE-2020-15705 — consente di caricare kernel non firmati durante l'avvio diretto in modalità Secure Boot senza livello shim;
  • CVE-2020-15706 — accesso ad un'area di memoria già liberata (use-after-free) quando si ridefinisce una funzione in fase di esecuzione;
  • CVE-2020-15707 — overflow di numeri interi nel gestore della dimensione initrd.

Sono stati rilasciati aggiornamenti del pacchetto hotfix per Debian, Ubuntu, RHEL и SUSE. Per GRUB2 proposto serie di patch.

Fonte: opennet.ru

Aggiungi un commento