Divas GRUB2 ievainojamības, kas ļauj apiet UEFI Secure Boot aizsardzību

Tika atklāta informācija par divām GRUB2 sāknēšanas ielādētāja ievainojamībām, kas var izraisīt koda izpildi, izmantojot īpaši izstrādātus fontus un apstrādājot noteiktas Unicode sekvences. Ievainojamības var izmantot, lai apietu UEFI Secure Boot verificēto sāknēšanas mehānismu.

Identificētās ievainojamības:

  • CVE-2022-2601 — Bufera pārpilde funkcijā grub_font_construct_glyph(), apstrādājot īpaši izstrādātus fontus pf2 formātā, kas rodas nepareiza parametra max_glyph_size aprēķina un atmiņas apgabala piešķiršanas dēļ, kas acīmredzami ir mazāks nekā nepieciešams, lai pielāgot glifus.
  • CVE-2022-3775 Rakstīšana ārpus robežām rodas, renderējot dažas unikoda sekvences īpaši veidotā fontā. Problēma ir fontu apstrādes kodā, un to izraisa pareizu pārbaužu trūkums, lai nodrošinātu, ka glifa platums un augstums atbilst pieejamās bitkartes izmēram. Uzbrucējs var izveidot ievadi tā, lai datu daļa tiktu ierakstīta piešķirtā bufera ārpusē. Tiek atzīmēts, ka, neraugoties uz ievainojamības izmantošanas sarežģītību, nav izslēgta problēmas rašanās līdz koda izpildei.

Labojums ir publicēts kā ielāps. Izplatījumu ievainojamību novēršanas statusu var novērtēt šajās lapās: Ubuntu, SUSE, RHEL, Fedora, Debian. Lai novērstu problēmas GRUB2, nepietiek tikai ar pakotnes atjaunināšanu; jums būs arī jāģenerē jauni iekšējie ciparparaksti un jāatjaunina instalētāji, sāknēšanas ielādētāji, kodola pakotnes, fwupd programmaparatūra un shim slānis.

Lielākajā daļā Linux izplatījumu tiek izmantots mazs starplikas slānis, ko Microsoft ir digitāli parakstījis, lai pārbaudītu sāknēšanu UEFI drošās sāknēšanas režīmā. Šis slānis pārbauda GRUB2 ar savu sertifikātu, kas ļauj izplatīšanas izstrādātājiem neļaut katram kodolam un GRUB atjauninājumam Microsoft sertificēt. GRUB2 ievainojamības ļauj sasniegt jūsu koda izpildi stadijā pēc veiksmīgas shim verifikācijas, bet pirms operētājsistēmas ielādes, ieslēdzoties uzticības ķēdē, kad drošās sāknēšanas režīms ir aktīvs un iegūstot pilnīgu kontroli pār turpmāko sāknēšanas procesu, t.sk. citas operētājsistēmas ielāde, operētājsistēmas komponentu sistēmas modificēšana un bloķēšanas aizsardzības apiešana.

Lai bloķētu ievainojamību, neatsaucot ciparparakstu, izplatījumos var izmantot SBAT (UEFI Secure Boot Advanced Targeting) mehānismu, kas tiek atbalstīts GRUB2, shim un fwupd populārākajos Linux izplatījumos. SBAT tika izstrādāts kopīgi ar Microsoft, un tas ietver papildu metadatu pievienošanu UEFI komponentu izpildāmajiem failiem, kas ietver informāciju par ražotāju, produktu, komponentu un versiju. Norādītie metadati ir sertificēti ar ciparparakstu, un tos var atsevišķi iekļaut UEFI Secure Boot atļauto vai aizliegto komponentu sarakstos.

SBAT ļauj bloķēt ciparparakstu izmantošanu atsevišķiem komponentu versiju numuriem, neatsaucot drošās sāknēšanas atslēgas. Lai bloķētu ievainojamības, izmantojot SBAT, nav jāizmanto UEFI sertifikātu atsaukšanas saraksts (dbx), bet tas tiek veikts iekšējās atslēgas aizstāšanas līmenī, lai ģenerētu parakstus un atjauninātu GRUB2, shim un citus izplatījumu nodrošinātos sāknēšanas artefaktus. Pirms SBAT ieviešanas sertifikātu atsaukšanas saraksta (dbx, UEFI atsaukšanas saraksta) atjaunināšana bija priekšnoteikums, lai pilnībā bloķētu ievainojamību, jo uzbrucējs neatkarīgi no izmantotās operētājsistēmas varēja izmantot sāknēšanas datu nesēju ar vecu, ievainojamu GRUB2 versiju, sertificēts ar ciparparakstu, lai apdraudētu UEFI Secure Boot .

Avots: opennet.ru

Pievieno komentāru