Vulnerabilitats a GRUB2 que us permeten evitar l'arrencada segura UEFI

S'han corregit 2 vulnerabilitats al carregador d'arrencada GRUB7 que us permeten evitar el mecanisme d'arrencada segura UEFI i executar codi no verificat, per exemple, introduir programari maliciós que s'executa al nivell del carregador d'arrencada o del nucli. A més, hi ha una vulnerabilitat a la capa shim, que també us permet evitar l'arrencada segura UEFI. El grup de vulnerabilitats va rebre el nom en clau Boothole 3, similar a problemes similars identificats anteriorment al carregador d'arrencada.

Per solucionar problemes de GRUB2 i shim, les distribucions podran utilitzar el mecanisme SBAT (UEFI Secure Boot Advanced Targeting), que és compatible amb GRUB2, shim i fwupd. SBAT es va desenvolupar conjuntament amb Microsoft i implica afegir metadades addicionals als fitxers executables dels components UEFI, que inclou informació sobre el fabricant, producte, component i versió. Les metadades especificades estan certificades amb una signatura digital i es poden incloure per separat a les llistes de components permesos o prohibits per a l'arrencada segura UEFI.

La majoria de distribucions de Linux utilitzen una petita capa de compensació signada digitalment per Microsoft per a l'arrencada verificada en mode d'arrencada segura UEFI. Aquesta capa verifica GRUB2 amb el seu propi certificat, que permet als desenvolupadors de distribució no tenir tots els nuclis i les actualitzacions de GRUB certificats per Microsoft. Les vulnerabilitats de GRUB2 us permeten assolir l'execució del vostre codi en l'etapa després de la verificació correcta del shim, però abans de carregar el sistema operatiu, encaixar a la cadena de confiança quan el mode d'arrencada segur està actiu i obtenir el control total sobre el procés d'arrencada posterior, inclòs carregar un altre sistema operatiu, modificar el sistema de components del sistema operatiu i evitar la protecció de bloqueig.

Per solucionar problemes al carregador d'arrencada, les distribucions hauran de crear noves signatures digitals internes i actualitzar els instal·ladors, els carregadors d'arrencada, els paquets del nucli, el microprogramari fwupd i la capa shim. Abans de la introducció de SBAT, l'actualització de la llista de revocació de certificats (dbx, UEFI Revocation List) era un requisit previ per bloquejar completament la vulnerabilitat, ja que un atacant, independentment del sistema operatiu utilitzat, podia utilitzar mitjans d'arrencada amb una versió antiga vulnerable de GRUB2, certificat per una signatura digital, per comprometre l'arrencada segura UEFI .

En lloc de revocar una signatura, SBAT us permet bloquejar-ne l'ús per a números de versió de components individuals sense haver de revocar les claus per a l'arrencada segura. El bloqueig de vulnerabilitats mitjançant SBAT no requereix l'ús d'una llista de revocació de certificats UEFI (dbx), sinó que es realitza a nivell de substitució de la clau interna per generar signatures i actualitzar GRUB2, shim i altres artefactes d'arrencada subministrats per les distribucions. Actualment, el suport SBAT ja s'ha afegit a les distribucions Linux més populars.

Vulnerabilitats identificades:

  • CVE-2021-3696, CVE-2021-3695 són desbordaments de memòria intermèdia basats en munt quan es processen imatges PNG dissenyades especialment, que en teoria es poden utilitzar per executar codi d'atacant i evitar l'arrencada segura UEFI. S'observa que el problema és difícil d'explotar, ja que la creació d'una explotació de treball requereix tenir en compte un gran nombre de factors i la disponibilitat d'informació sobre la disposició de la memòria.
  • CVE-2021-3697: un desbordament de memòria intermèdia al codi de processament d'imatges JPEG. L'explotació del problema requereix coneixement de la disposició de la memòria i té aproximadament el mateix nivell de complexitat que el problema PNG (CVSS 7.5).
  • CVE-2022-28733: un desbordament d'enters a la funció grub_net_recv_ip4_packets() permet que el paràmetre rsm->total_len es vegi afectat enviant un paquet IP especialment dissenyat. El problema està marcat com el més perillós de les vulnerabilitats presentades (CVSS 8.1). Si s'aprofita amb èxit, la vulnerabilitat permet que les dades s'escriguin més enllà del límit de la memòria intermèdia assignant una mida de memòria deliberadament més petita.
  • CVE-2022-28734: desbordament de memòria intermèdia d'un sol byte quan es processen les capçaleres HTTP eliminades. Un problema pot provocar la corrupció de les metadades de GRUB2 (escrivint un byte nul just després del final de la memòria intermèdia) en analitzar les sol·licituds HTTP dissenyades especialment.
  • CVE-2022-28735 Un problema al verificador shim_lock permet la càrrega de fitxers que no són del nucli. La vulnerabilitat es pot utilitzar per carregar mòduls del nucli sense signar o codi no verificat en mode d'arrencada segura UEFI.
  • CVE-2022-28736 Un accés a memòria ja alliberat a la funció grub_cmd_chainloader() mitjançant una repetició de l'ordre chainloader, que s'utilitza per arrencar sistemes operatius no compatibles amb GRUB2. L'explotació podria provocar l'execució de codi de l'atacant si l'atacant és capaç de determinar l'assignació de memòria a GRUB2
  • CVE-2022-28737: es produeix un desbordament de memòria intermèdia a la capa shim a la funció handle_image() quan es carreguen i s'executen imatges EFI elaborades.

Font: opennet.ru

Afegeix comentari