Dvije ranjivosti u GRUB2 koje vam omogućavaju da zaobiđete UEFI Secure Boot zaštitu

Otkrivene su informacije o dvije ranjivosti u GRUB2 bootloaderu, koje mogu dovesti do izvršavanja koda kada se koriste posebno dizajnirani fontovi i obrađuju određene Unicode sekvence. Ranjivosti se mogu koristiti za zaobilaženje UEFI Secure Boot verifikovanog mehanizma pokretanja.

Identifikovane ranjivosti:

  • CVE-2022-2601 - Prekoračenje međuspremnika u funkciji grub_font_construct_glyph() pri obradi posebno dizajniranih fontova u formatu pf2, do kojeg dolazi zbog pogrešnog izračuna parametra max_glyph_size i dodjele memorijskog područja koje je očigledno manje nego što je potrebno za prilagodi glifove.
  • CVE-2022-3775 Do upisa izvan granica dolazi kada se neke Unicode sekvence prikazuju u posebno stilizovanom fontu. Problem je u kodu za obradu fonta i uzrokovan je nedostatkom odgovarajućih provjera kako bi se osiguralo da širina i visina glifa odgovaraju veličini dostupne bitmape. Napadač može kreirati ulaz na takav način da izazove zapisivanje repa podataka izvan dodijeljenog bafera. Napominje se da uprkos složenosti iskorištavanja ranjivosti, nije isključeno dovođenje problema u izvršavanje koda.

Ispravka je objavljena kao zakrpa. Status eliminacije ranjivosti u distribucijama može se procijeniti na ovim stranicama: Ubuntu, SUSE, RHEL, Fedora, Debian. Da biste riješili probleme u GRUB2, nije dovoljno samo ažurirati paket; također ćete morati generirati nove interne digitalne potpise i programe za instalaciju ažuriranja, bootloadere, kernel pakete, fwupd firmware i shim sloj.

Većina Linux distribucija koristi mali podložni sloj koji je digitalno potpisao Microsoft za verifikovano pokretanje u UEFI Secure Boot modu. Ovaj sloj verifikuje GRUB2 sopstvenim sertifikatom, što omogućava programerima distribucije da nemaju svako jezgro i ažuriranje GRUB-a sertifikovano od strane Microsofta. Ranjivosti u GRUB2 omogućavaju vam da postignete izvršenje vašeg koda u fazi nakon uspješne shim verifikacije, ali prije učitavanja operativnog sistema, uglavljivanje u lanac povjerenja kada je način Secure Boot aktivan i sticanje potpune kontrole nad daljim procesom pokretanja, uključujući učitavanje drugog OS-a, modificiranje sistema komponenti operativnog sistema i zaobilaženje Lockdown zaštite.

Da blokiraju ranjivost bez opoziva digitalnog potpisa, distribucije mogu koristiti SBAT (UEFI Secure Boot Advanced Targeting) mehanizam, koji je podržan za GRUB2, shim i fwupd u većini popularnih Linux distribucija. SBAT je razvijen zajedno sa Microsoftom i uključuje dodavanje dodatnih metapodataka u izvršne datoteke UEFI komponenti, što uključuje informacije o proizvođaču, proizvodu, komponenti i verziji. Navedeni metapodaci su sertifikovani digitalnim potpisom i mogu se posebno uključiti u liste dozvoljenih ili zabranjenih komponenti za UEFI Secure Boot.

SBAT vam omogućava da blokirate upotrebu digitalnih potpisa za pojedinačne brojeve verzija komponente bez da morate opozvati ključeve za Secure Boot. Blokiranje ranjivosti putem SBAT-a ne zahtijeva korištenje UEFI liste opoziva certifikata (dbx), već se izvodi na nivou zamjene internog ključa za generiranje potpisa i ažuriranje GRUB2, shim-a i drugih artefakata pokretanja koje dostavljaju distribucije. Prije uvođenja SBAT-a, ažuriranje liste opoziva certifikata (dbx, UEFI Revocation List) bilo je preduslov za potpuno blokiranje ranjivosti, jer je napadač, bez obzira na operativni sistem koji koristi, mogao koristiti medij za pokretanje sa starom ranjivom verzijom GRUB2, sertifikovan digitalnim potpisom, kako bi se kompromitovao UEFI Secure Boot.

izvor: opennet.ru

Dodajte komentar