Kritična ranljivost v zagonskem nalagalniku GRUB2, ki vam omogoča, da obidete UEFI Secure Boot

V zagonskem nalagalniku GRUB2 razkrila 8 ranljivosti. Najbolj nevarno problem (CVE-2020-10713), ki ima kodno ime BootHole, dati priložnost obidite mehanizem varnega zagona UEFI in namestite nepreverjeno zlonamerno programsko opremo. Posebnost te ranljivosti je, da za njeno odpravo ni dovolj posodobiti GRUB2, saj lahko napadalec uporabi zagonski medij s staro ranljivo različico, potrjeno z digitalnim podpisom. Napadalec lahko ogrozi postopek preverjanja ne le Linuxa, ampak tudi drugih operacijskih sistemov, vključno z Windows.

Težavo je mogoče rešiti le s posodobitvijo sistema seznam preklicanih potrdil (dbx, UEFI Revocation List), vendar bo v tem primeru zmožnost uporabe starega namestitvenega medija z Linuxom izgubljena. Nekateri proizvajalci opreme so že vključili posodobljen seznam potrdil o preklicu v svojo vdelano programsko opremo; na takih sistemih je mogoče naložiti samo posodobljene različice distribucij Linuxa v načinu UEFI Secure Boot.

Za odpravo ranljivosti v distribucijah boste morali posodobiti tudi namestitvene programe, zagonske programe, pakete jedra, vdelano programsko opremo fwupd in shim plast ter zanje ustvariti nove digitalne podpise. Uporabniki bodo morali posodobiti namestitvene slike in druge zagonske medije ter naložiti seznam preklicanih potrdil (dbx) v strojno programsko opremo UEFI. Pred posodobitvijo dbx na UEFI ostane sistem ranljiv ne glede na namestitev posodobitev v OS.

Ranljivost povzročila prelivanje medpomnilnika, ki ga je mogoče izkoristiti za izvajanje poljubne kode med postopkom zagona.
Ranljivost se pojavi pri razčlenjevanju vsebine konfiguracijske datoteke grub.cfg, ki se običajno nahaja v ESP (sistemska particija EFI) in jo lahko ureja napadalec s skrbniškimi pravicami, ne da bi pri tem kršil celovitost podpisanih shim in izvršljivih datotek GRUB2. Zaradi Napake v kodi konfiguracijskega razčlenjevalnika je upravljalnik za usodne napake pri razčlenjevanju YY_FATAL_ERROR prikazal le opozorilo, ni pa prekinil programa. Tveganje ranljivosti je zmanjšano zaradi potrebe po privilegiranem dostopu do sistema; vendar je težava morda potrebna za uvedbo skritih rootkitov, če obstaja fizični dostop do opreme (če je možen zagon z lastnega medija).

Večina distribucij Linuxa uporablja majhno podložna plast, digitalno podpisan s strani Microsofta. Ta plast preverja GRUB2 z lastnim potrdilom, ki razvijalcem distribucij omogoča, da Microsoft ne potrdi vsakega jedra in posodobitve GRUB. Ranljivost omogoča, da s spreminjanjem vsebine grub.cfg dosežete izvedbo vaše kode na stopnji po uspešnem preverjanju shim, vendar pred nalaganjem operacijskega sistema, zagozditvijo v verigo zaupanja, ko je način Secure Boot aktiven in pridobite popoln nadzor nad nadaljnjim postopkom zagona, vključno z nalaganjem drugega operacijskega sistema, spreminjanjem komponent operacijskega sistema in izogibanjem zaščiti Lockdown.

Kritična ranljivost v zagonskem nalagalniku GRUB2, ki vam omogoča, da obidete UEFI Secure Boot

Druge ranljivosti v GRUB2:

  • CVE-2020-14308 — prekoračitev medpomnilnika zaradi pomanjkanja preverjanja velikosti dodeljenega pomnilniškega območja v grub_malloc;
  • CVE-2020-14309 - celoštevilska prekoračitev v grub_squash_read_symlink, ki lahko povzroči zapisovanje podatkov izven dodeljenega vmesnega pomnilnika;
  • CVE-2020-14310 - celoštevilska prekoračitev v read_section_from_string, ki lahko privede do pisanja podatkov izven dodeljenega medpomnilnika;
  • CVE-2020-14311 - celoštevilska prekoračitev v grub_ext2_read_link, ki lahko povzroči zapisovanje podatkov izven dodeljenega vmesnega pomnilnika;
  • CVE-2020-15705 — omogoča nalaganje nepodpisanih jeder med neposrednim zagonom v načinu Secure Boot brez plasti za pritrditev;
  • CVE-2020-15706 — dostop do že sproščenega pomnilniškega območja (use-after-free) pri redefiniranju funkcije med izvajanjem;
  • CVE-2020-15707 — prekoračitev celega števila v upravljalniku velikosti initrd.

Izdane so posodobitve hitrih popravkov za Debian, Ubuntu, RHEL и SUSE. Za GRUB2 predlagano komplet obližev.

Vir: opennet.ru

Dodaj komentar