Dvije ranjivosti u GRUB2 koje vam omogućuju zaobilaženje zaštite UEFI Secure Boot

Objavljene su informacije o dvije ranjivosti u GRUB2 bootloaderu, koje mogu dovesti do izvršavanja koda pri korištenju posebno dizajniranih fontova i obradi određenih Unicode sekvenci. Ranjivosti se mogu koristiti za zaobilaženje UEFI Secure Boot provjerenog mehanizma pokretanja.

Identificirane ranjivosti:

  • CVE-2022-2601 - Prelivanje međuspremnika u funkciji grub_font_construct_glyph() prilikom obrade posebno dizajniranih fontova u formatu pf2, do kojeg dolazi zbog netočnog izračuna parametra max_glyph_size i dodjele memorijskog područja koje je očito manje od potrebnog za smjestiti glifove.
  • CVE-2022-3775 Do pisanja izvan granica dolazi prilikom renderiranja nekih Unicode nizova u posebno stiliziranom fontu. Problem je u kodu za obradu fonta i uzrokovan je nedostatkom odgovarajućih provjera kako bi se osiguralo da širina i visina glifa odgovara veličini dostupne bitmape. Napadač može izraditi unos na takav način da izazove zapisivanje repa podataka izvan dodijeljenog međuspremnika. Napominje se da unatoč složenosti iskorištavanja ranjivosti, nije isključeno da se problem dovede do izvršavanja koda.

Popravak je objavljen kao zakrpa. Status otklanjanja 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 ažurirati instalatere, bootloadere, kernel pakete, fwupd firmware i shim sloj.

Većina distribucija Linuxa koristi mali podložni sloj digitalno potpisan od strane Microsofta za provjereno pokretanje u UEFI Secure Boot modu. Ovaj sloj provjerava GRUB2 s vlastitim certifikatom, koji programerima distribucije omogućuje da nemaju svako ažuriranje kernela i GRUB-a certificirano od strane Microsofta. Ranjivosti u GRUB2 omogućuju vam da postignete izvršenje vašeg koda u fazi nakon uspješne provjere shim-a, ali prije učitavanja operativnog sustava, ubacivanje u lanac povjerenja kada je Secure Boot mod aktivan i dobivanje potpune kontrole nad daljnjim postupkom pokretanja, uključujući učitavanje drugog OS-a, mijenjanje komponenti operativnog sustava sustav i zaobilaženje zaštite od zaključavanja.

Za blokiranje ranjivosti bez opoziva digitalnog potpisa, distribucije mogu koristiti mehanizam SBAT (UEFI Secure Boot Advanced Targeting), koji je podržan za GRUB2, shim i fwupd u većini popularnih distribucija Linuxa. SBAT je razvijen u suradnji s 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 ovjereni su digitalnim potpisom i mogu se zasebno uključiti u popise dopuštenih ili zabranjenih komponenti za UEFI Secure Boot.

SBAT vam omogućuje da blokirate korištenje digitalnih potpisa za pojedinačne brojeve verzija komponente bez potrebe za opozivom ključeva za sigurno pokretanje. Blokiranje ranjivosti putem SBAT-a ne zahtijeva korištenje liste opoziva UEFI certifikata (dbx), već se izvodi na razini zamjene internog ključa za generiranje potpisa i ažuriranje GRUB2, shim i drugih artefakata pokretanja koje isporučuju distribucije. Prije uvođenja SBAT-a, ažuriranje liste opoziva certifikata (dbx, UEFI Revocation List) bilo je preduvjet za potpuno blokiranje ranjivosti, budući da je napadač, bez obzira na operativni sustav koji se koristi, mogao koristiti medij za podizanje sustava sa starom ranjivom verzijom GRUB2 certificiran digitalnim potpisom za kompromitiranje UEFI Secure Boot.

Izvor: opennet.ru

Dodajte komentar