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 ispravki ranjivosti u distribucijama može se procijeniti na ovim stranicama: Ubuntu, SUSE, RHEL, Fedora, DebianRješavanje problema sa GRUB2 zahtijeva više od pukog ažuriranja paketa; također zahtijeva generiranje novih internih digitalnih potpisa i ažuriranje instalera, bootloadera, kernel paketa, fwupd firmvera i shim sloja.
U većini LinuxDistribucije za verifikovano pokretanje u UEFI Secure Boot modu koriste mali shim sloj, digitalno potpisan od strane Microsofta. Ovaj sloj verifikuje GRUB2 vlastitim certifikatom, eliminišući potrebu da programeri distribucija obavještavaju Microsoft o svakom ažuriranju kernela i GRUB-a. Ranjivosti u GRUB2 omogućavaju proizvoljno izvršavanje koda nakon uspješne shim verifikacije, ali prije pokretanja operativnog sistema. Ovo omogućava napadačima da probiju u lanac povjerenja kada je Secure Boot omogućen i dobiju potpunu kontrolu nad narednim procesom pokretanja, uključujući pokretanje drugog operativnog sistema, modifikovanje komponenti operativnog sistema i zaobilaženje zaštite od zaključavanja.
Da bi blokirale ranjivost bez opoziva digitalnog potpisa, distribucije mogu koristiti mehanizam SBAT (UEFI Secure Boot Advanced Targeting), čija je podrška implementirana za GRUB2, shim i fwupd u većini popularnih distribucija. LinuxSBAT je razvijen u saradnji sa Microsoftom i uključuje dodavanje dodatnih metapodataka izvršnim datotekama UEFI komponenti, uključujući informacije o proizvođaču, proizvodu, komponenti i verziji. Ovi metapodaci su digitalno potpisani i mogu se zasebno 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
