Kritična ranjivost u GRUB2 bootloaderu koja vam omogućava da zaobiđete UEFI Secure Boot

U GRUB2 bootloaderu otkriveno 8 ranjivosti. Najopasnije problem (CVE-2020-10713), koji nosi kodni naziv BootHole, dati šansu zaobići UEFI Secure Boot mehanizam i instalirati neprovjereni zlonamjerni softver. Posebnost ove ranjivosti je da za njeno uklanjanje nije dovoljno ažurirati GRUB2, jer napadač može koristiti medij za pokretanje sa starom ranjivom verzijom ovjerenom digitalnim potpisom. Napadač može ugroziti proces verifikacije ne samo Linuxa, već i drugih operativnih sistema, uključujući Windows.

Problem se može riješiti samo ažuriranjem sistema lista opoziva certifikata (dbx, UEFI Revocation List), ali u ovom slučaju će se izgubiti mogućnost korištenja starog instalacionog medija s Linuxom. Neki proizvođači opreme su već uključili ažuriranu listu certifikata za opoziv u svoj firmver; na takvim sistemima, samo ažurirane verzije Linux distribucija mogu se učitati u UEFI Secure Boot modu.

Da biste eliminirali ranjivost u distribucijama, također ćete morati ažurirati instalatere, bootloadere, kernel pakete, fwupd firmware i shim sloj, generirajući nove digitalne potpise za njih. Od korisnika će se tražiti da ažuriraju instalacijske slike i druge medije za pokretanje, kao i da učitaju listu opoziva certifikata (dbx) u UEFI firmver. Prije ažuriranja dbx-a na UEFI, sistem ostaje ranjiv bez obzira na instalaciju ažuriranja u OS.

Ranjivost uzrokovano prelivanje bafera koji se može iskoristiti za izvršavanje proizvoljnog koda tokom procesa pokretanja.
Ranjivost se javlja prilikom raščlanjivanja sadržaja konfiguracijske datoteke grub.cfg, koja se obično nalazi u ESP-u (EFI sistemska particija) i može je uređivati ​​napadač sa administratorskim pravima bez narušavanja integriteta potpisanih shim i GRUB2 izvršnih datoteka. Zbog greške u kodu raščlanjivanja konfiguracije, rukovalac za fatalne greške raščlanjivanja YY_FATAL_ERROR je samo prikazao upozorenje, ali nije prekinuo program. Rizik od ranjivosti je smanjen potrebom za privilegovanim pristupom sistemu; međutim, problem može biti potreban za uvođenje skrivenih rootkita ako postoji fizički pristup opremi (ako je moguće pokrenuti sistem sa sopstvenog medija).

Većina Linux distribucija koristi mali podložni sloj, digitalno potpisan od strane Microsofta. Ovaj sloj verifikuje GRUB2 sopstvenim sertifikatom, što omogućava programerima distribucije da nemaju svako jezgro i ažuriranje GRUB-a sertifikovano od strane Microsofta. Ranjivost omogućava, promjenom sadržaja grub.cfg, 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 dobijanje pune kontrole tokom daljeg procesa pokretanja, uključujući učitavanje drugog OS-a, modifikaciju komponenti operativnog sistema i zaobilaženje zaštite Zaključavanje.

Kritična ranjivost u GRUB2 bootloaderu koja vam omogućava da zaobiđete UEFI Secure Boot

Ostale ranjivosti u GRUB2:

  • CVE-2020-14308 — prelivanje bafera zbog nedostatka provjere veličine dodijeljene memorijske oblasti u grub_malloc;
  • CVE-2020-14309 - prekoračenje cijelog broja u grub_squash_read_symlink, što može dovesti do upisivanja podataka izvan dodijeljenog bafera;
  • CVE-2020-14310 - prekoračenje cijelog broja u read_section_from_string, što može dovesti do pisanja podataka izvan dodijeljenog bafera;
  • CVE-2020-14311 - prekoračenje cijelog broja u grub_ext2_read_link, što može dovesti do upisivanja podataka izvan dodijeljenog bafera;
  • CVE-2020-15705 — omogućava vam da učitate nepotpisane kernele tokom direktnog pokretanja u režimu Secure Boot bez shim sloja;
  • CVE-2020-15706 — pristup već oslobođenom memorijskom području (use-after-free) kada se redefinira funkcija u vrijeme izvođenja;
  • CVE-2020-15707 — prekoračenje cijelog broja u obrađivaču veličine initrd.

Objavljena su ažuriranja paketa hitnih popravki za Debian, Ubuntu, RHEL и SUSE. Za GRUB2 predložio set zakrpa.

izvor: opennet.ru

Dodajte komentar