Vulnerabilità in GRUB2 che consentono di bypassare UEFI Secure Boot

Sono state corrette 2 vulnerabilità nel bootloader GRUB7 che consentono di bypassare il meccanismo UEFI Secure Boot ed eseguire codice non verificato, ad esempio introducendo malware in esecuzione a livello di bootloader o kernel. Inoltre, esiste una vulnerabilità nel livello shim, che consente anche di bypassare UEFI Secure Boot. Il gruppo di vulnerabilità aveva il nome in codice Boothole 3, simile a problemi simili precedentemente identificati nel bootloader.

Per risolvere i problemi in GRUB2 e shim, le distribuzioni saranno in grado di utilizzare il meccanismo SBAT (UEFI Secure Boot Advanced Targeting), supportato per GRUB2, shim e fwupd. SBAT è stato sviluppato in collaborazione con Microsoft e prevede l'aggiunta di metadati aggiuntivi ai file eseguibili dei componenti UEFI, che includono informazioni su produttore, prodotto, componente e versione. I metadati specificati sono certificati con una firma digitale e possono essere inclusi separatamente negli elenchi dei componenti consentiti o vietati per UEFI Secure Boot.

La maggior parte delle distribuzioni Linux utilizza un piccolo livello shim firmato digitalmente da Microsoft per l'avvio verificato in modalità UEFI Secure Boot. Questo livello verifica GRUB2 con il proprio certificato, che consente agli sviluppatori di distribuzioni di non far certificati da Microsoft tutti i kernel e gli aggiornamenti di GRUB. Le vulnerabilità in GRUB2 consentono di eseguire il codice nella fase successiva alla verifica shim riuscita, ma prima di caricare il sistema operativo, incuneandosi nella catena di fiducia quando la modalità Secure Boot è attiva e ottenendo il pieno controllo sull'ulteriore processo di avvio, incluso caricamento di un altro sistema operativo, modifica dei componenti del sistema operativo e esclusione della protezione di blocco.

Per risolvere i problemi nel bootloader, le distribuzioni dovranno creare nuove firme digitali interne e aggiornare programmi di installazione, bootloader, pacchetti kernel, firmware fwupd e livello shim. Prima dell'introduzione di SBAT, l'aggiornamento dell'elenco di revoche di certificati (dbx, UEFI Revocation List) era un prerequisito per bloccare completamente la vulnerabilità, poiché un utente malintenzionato, indipendentemente dal sistema operativo utilizzato, poteva utilizzare supporti di avvio con una vecchia versione vulnerabile di GRUB2, certificato da una firma digitale, per compromettere UEFI Secure Boot.

Invece di revocare una firma, SBAT consente di bloccarne l'utilizzo per i numeri di versione dei singoli componenti senza dover revocare le chiavi per Secure Boot. Il blocco delle vulnerabilità tramite SBAT non richiede l'uso di un elenco di revoche di certificati UEFI (dbx), ma viene eseguito a livello di sostituzione della chiave interna per generare firme e aggiornare GRUB2, shim e altri artefatti di avvio forniti dalle distribuzioni. Attualmente, il supporto SBAT è già stato aggiunto alle distribuzioni Linux più popolari.

Vulnerabilità identificate:

  • CVE-2021-3696, CVE-2021-3695 sono buffer overflow basati su heap durante l'elaborazione di immagini PNG appositamente progettate, che teoricamente possono essere utilizzate per eseguire codice dell'autore dell'attacco e bypassare UEFI Secure Boot. Va notato che il problema è difficile da sfruttare, poiché la creazione di un exploit funzionante richiede la presa in considerazione di un gran numero di fattori e la disponibilità di informazioni sulla disposizione della memoria.
  • CVE-2021-3697: buffer underflow nel codice di elaborazione delle immagini JPEG. Sfruttare il problema richiede la conoscenza del layout della memoria ed è all'incirca allo stesso livello di complessità del problema PNG (CVSS 7.5).
  • CVE-2022-28733 - Un overflow di numeri interi nella funzione grub_net_recv_ip4_packets() consente di influenzare il parametro rsm->total_len inviando un pacchetto IP appositamente predisposto. Il problema è contrassegnato come il più pericoloso tra le vulnerabilità presentate (CVSS 8.1). Se sfruttata con successo, la vulnerabilità consente la scrittura dei dati oltre il limite del buffer allocando una dimensione di memoria deliberatamente inferiore.
  • CVE-2022-28734: Overflow del buffer a byte singolo durante l'elaborazione di intestazioni HTTP rimosse. Un problema può causare il danneggiamento dei metadati GRUB2 (scrittura di un byte null subito dopo la fine del buffer) durante l'analisi di richieste HTTP appositamente predisposte.
  • CVE-2022-28735 Un problema nel verificatore shim_lock consente il caricamento di file non kernel. La vulnerabilità può essere utilizzata per caricare moduli del kernel non firmati o codice non verificato in modalità UEFI Secure Boot.
  • CVE-2022-28736 Un accesso alla memoria già liberato nella funzione grub_cmd_chainloader() tramite una riesecuzione del comando chainloader, utilizzato per avviare sistemi operativi non supportati da GRUB2. Lo sfruttamento potrebbe comportare l'esecuzione di codice da parte dell'utente malintenzionato se l'utente malintenzionato è in grado di determinare l'allocazione della memoria in GRUB2
  • CVE-2022-28737 - Si verifica un overflow del buffer nel livello shim nella funzione handle_image() durante il caricamento e l'esecuzione di immagini EFI predisposte.

Fonte: opennet.ru

Aggiungi un commento