Dve ranljivosti v GRUB2, ki vam omogočata, da obidete zaščito UEFI Secure Boot

Razkrite so bile informacije o dveh ranljivostih v zagonskem nalagalniku GRUB2, ki lahko povzročita izvajanje kode pri uporabi posebej oblikovanih pisav in obdelavi določenih zaporedij Unicode. Ranljivosti je mogoče uporabiti za obhod preverjenega zagonskega mehanizma UEFI Secure Boot.

Ugotovljene ranljivosti:

  • CVE-2022-2601 - Prekoračitev medpomnilnika v funkciji grub_font_construct_glyph() pri obdelavi posebej oblikovanih pisav v formatu pf2, do katere pride zaradi nepravilnega izračuna parametra max_glyph_size in dodelitve pomnilniškega območja, ki je očitno manjše od potrebnega za prilagodite glife.
  • CVE-2022-3775 Do pisanja izven meja pride pri upodabljanju nekaterih zaporedij Unicode v pisavi s posebnim slogom. Težava je v kodi za obdelavo pisave in je posledica pomanjkanja ustreznih preverjanj, s katerimi bi zagotovili, da se širina in višina glifa ujemata z velikostjo razpoložljive bitne slike. Napadalec lahko ustvari vnos tako, da povzroči, da se rep podatkov zapiše zunaj dodeljenega medpomnilnika. Opozoriti je treba, da kljub zapletenosti izkoriščanja ranljivosti ni izključeno, da se težava prenese na izvajanje kode.

Popravek je bil objavljen kot popravek. Stanje odpravljanja ranljivosti v distribucijah lahko ocenite na teh straneh: Ubuntu, SUSE, RHEL, Fedora, Debian. Če želite odpraviti težave v GRUB2, ni dovolj samo posodobiti paket; morali boste ustvariti tudi nove notranje digitalne podpise in posodobiti namestitvene programe, zagonske nalagalnike, pakete jedra, vdelano programsko opremo fwupd in plast podložke.

Večina distribucij Linuxa za preverjen zagon v načinu UEFI Secure Boot uporablja majhno podložno plast, ki jo digitalno podpiše Microsoft. Ta plast preverja GRUB2 z lastnim potrdilom, ki razvijalcem distribucij omogoča, da Microsoft ne potrdi vsakega jedra in posodobitve GRUB. Ranljivosti v GRUB2 vam omogočajo, da 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 varnega zagona aktiven, in pridobitvijo popolnega nadzora nad nadaljnjim postopkom zagona, vključno z nalaganje drugega operacijskega sistema, spreminjanje sistemskih komponent operacijskega sistema in obhod zaščite pred zaklepanjem.

Za blokiranje ranljivosti brez preklica digitalnega podpisa lahko distribucije uporabijo mehanizem SBAT (UEFI Secure Boot Advanced Targeting), ki je podprt za GRUB2, shim in fwupd v večini priljubljenih distribucij Linuxa. SBAT je bil razvit skupaj z Microsoftom in vključuje dodajanje dodatnih metapodatkov v izvedljive datoteke komponent UEFI, ki vključujejo informacije o proizvajalcu, izdelku, komponenti in različici. Navedeni metapodatki so potrjeni z digitalnim podpisom in jih je mogoče ločeno vključiti na sezname dovoljenih ali prepovedanih komponent za UEFI Secure Boot.

SBAT vam omogoča, da blokirate uporabo digitalnih podpisov za posamezne številke različic komponent, ne da bi morali preklicati ključe za varni zagon. Blokiranje ranljivosti prek SBAT ne zahteva uporabe seznama preklicanih potrdil UEFI (dbx), ampak se izvaja na ravni zamenjave notranjega ključa za generiranje podpisov in posodobitev GRUB2, shim in drugih zagonskih artefaktov, ki jih zagotavljajo distribucije. Pred uvedbo SBAT je bila posodobitev seznama preklicanih potrdil (dbx, UEFI Revocation List) pogoj za popolno blokado ranljivosti, saj je lahko napadalec, ne glede na uporabljeni operacijski sistem, uporabil zagonski medij s staro ranljivo različico GRUB2, potrjeno z digitalnim podpisom, da ogrozijo UEFI Secure Boot.

Vir: opennet.ru

Dodaj komentar