Otkrivene su informacije o dvije ranjivosti u GRUB2 bootloaderu koje mogu omogućiti izvršavanje koda koristeći posebno oblikovane fontove i obradu određenih Unicode sekvenci. Ranjivosti se mogu iskoristiti za zaobilaženje mehanizma verifikovane UEFI Secure Boot.
Otkrivene ranjivosti:
- CVE-2022-2601 — prelivanje bafera u funkciji grub_font_construct_glyph() prilikom obrade posebno oblikovanih fontova u pf2 formatu, do kojeg dolazi zbog pogrešnog izračuna parametra max_glyph_size i rezervisanja memorijskog prostora koji je evidentno manji od potrebnog za smeštaj glifova.
- CVE-2022-3775 — pisanje izvan rezervisane memorijske oblasti prilikom crtanja nekih Unicode sekvenci sa posebno oblikovanim fontom. Problem je prisutan u kodu za obradu fontova i izazvan je nedostatkom adekvatnih provera usklađenosti širine i visine glifa sa veličinom postojeće bitmap slike. Napadač može prilagoditi ulaz na takav način da izazove pisanje podataka na granici rezervisanog bafera. Primećeno je da, uprkos složenosti eksploatacije ranjivosti, mogućnost izvršavanja koda nije isključena.
Ispravka je objavljena u obliku zakrpe. Status ispravke ranjivosti u distribucijama može se proceniti na ovim stranicama: Ubuntu, SUSE, RHEL, Fedora, Debian. Da bi se problemi u GRUB2 rešili, nije dovoljno samo ažurirati paket, potrebno je takođe formirati nove unutrašnje digitalne potpise i ažurirati instalacione programe, bootloadere, pakete s kernelom, fwupd firmware i shim sloj.
U većini Linux distribucija za verifikovano podizanje sistema u režimu UEFI Secure Boot koristi se mali shim sloj, digitalno potpisan od strane Microsoft-a. Ovaj sloj verifikuje GRUB2 vlastitim sertifikatom, što omogućava developerima distribucija da ne potpisuju svaku nadogradnju kernela i GRUB-a u Microsoft-u. Ranjivosti u GRUB2 omogućavaju izvršavanje vlastitog koda u fazi nakon uspešne verifikacije shima, ali pre pokretanja operativnog sistema, upadajući u lanac poverenja dok je aktivan režim Secure Boot i stičući potpunu kontrolu nad daljim procesom podizanja sustava, uključujući pokretanje druge OS, modifikaciju komponenti operativnog sistema i zaobilaženje Lockdown zaštite.
Za blokiranje ranjivosti bez opoziva digitalne potpise, distribucije mogu koristiti mehanizam SBAT (UEFI Secure Boot Advanced Targeting), čija podrška je implementirana za GRUB2, shim i fwupd u većini popularnih Linux distribucija. SBAT je razvijen u saradnji s Microsoftom i podrazumeva dodavanje dodatnih metapodataka u izvršne datoteke UEFI komponenti, koji uključuju informacije o proizvođaču, proizvodu, komponenti i verziji. Ovi metapodaci su potpisani digitalnom potpisom i mogu biti odvojeno uključeni u liste dozvoljenih ili zabranjenih komponenti za UEFI Secure Boot.
SBAT omogućava blokiranje korišćenja digitalne potpise za pojedinačne verzije komponenti bez potrebe za opozivom ključeva za Secure Boot. Blokiranje ranjivosti putem SBAT-a ne zahteva korišćenje liste opozvanih UEFI sertifikata (dbx), već se vrši na nivou zamene internog ključa za formiranje potpisa i nadogradnju GRUB2, shima i drugih boot artefakata obezbeđenih od strane distribucija. Pre implementacije SBAT-a, ažuriranje liste opozvanih sertifikata (dbx, UEFI Revocation List) bilo je obavezno za potpuno blokiranje ranjivosti, jer je napadač, bez obzira na korišćenje operativnog sistema, mogao da iskoristi boot medij sa starom ranjivom verzijom GRUB2, potpisanom digitalnim potpisom.
Izvor: opennet.ru
