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

U GRUB2 bootloaderu otkriveno 8 ranjivosti. Najopasniji problem (CVE-2020-10713), kodnog naziva BootHole, dati šansu zaobići mehanizam UEFI Secure Boot i instalirati neprovjereni zlonamjerni softver. Posebnost ove ranjivosti je da za njezino uklanjanje nije dovoljno ažurirati GRUB2, budući da napadač može koristiti medij za podizanje sustava sa starom ranjivom verzijom ovjerenom digitalnim potpisom. Napadač može ugroziti postupak provjere ne samo Linuxa, već i drugih operativnih sustava, uključujući Windows.

Problem se može riješiti samo ažuriranjem sustava lista opoziva certifikata (dbx, UEFI Revocation List), ali u ovom slučaju će se izgubiti mogućnost korištenja starog instalacijskog medija s Linuxom. Neki proizvođači opreme već su uključili ažurirani popis certifikata opoziva u svoj firmware; na takvim sustavima samo ažurirane verzije distribucija Linuxa mogu se učitati u UEFI Secure Boot modu.

Da biste uklonili 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. Korisnici će morati ažurirati instalacijske slike i druge medije za podizanje sustava, kao i učitati popis opozvanih certifikata (dbx) u UEFI firmware. Prije ažuriranja dbx-a na UEFI, sustav ostaje ranjiv bez obzira na instaliranje ažuriranja u OS.

Ranjivost uzrokovano prelijevanje međuspremnika koje se može iskoristiti za izvršavanje proizvoljnog koda tijekom procesa pokretanja.
Ranjivost se javlja prilikom parsiranja sadržaja grub.cfg konfiguracijske datoteke, koja se obično nalazi u ESP (EFI System Partition) i može ju uređivati ​​napadač s administratorskim pravima bez narušavanja integriteta potpisanih shim i GRUB2 izvršnih datoteka. Zbog Pogreške u kodu parsera konfiguracije, rukovatelj fatalnim pogreškama parsiranja YY_FATAL_ERROR samo je prikazao upozorenje, ali nije prekinuo program. Rizik od ranjivosti smanjen je potrebom za privilegiranim pristupom sustavu; međutim, problem može biti potreban za uvođenje skrivenih rootkita ako imate fizički pristup opremi (ako je moguće dignuti sustav s vlastitog medija).

Većina distribucija Linuxa koristi mali podložni sloj, digitalno potpisan od strane Microsofta. 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. Ranjivost dopušta, promjenom sadržaja grub.cfg, postizanje izvršenja vašeg koda u fazi nakon uspješne shim verifikacije, ali prije učitavanja operativnog sustava, ubacivanje u lanac povjerenja kada je Secure Boot mod aktivan i dobivanje pune kontrole tijekom daljnjeg procesa pokretanja, uključujući učitavanje drugog OS-a, modificiranje komponenti operativnog sustava i zaobilaženje zaštite zaključan.

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

Ostale ranjivosti u GRUB2:

  • CVE-2020-14308 — prekoračenje međuspremnika zbog nedostatka provjere veličine dodijeljenog memorijskog područja u grub_malloc;
  • CVE-2020-14309 - prekoračenje cijelog broja u grub_squash_read_symlink, što može dovesti do upisa podataka izvan dodijeljenog međuspremnika;
  • CVE-2020-14310 - prekoračenje cijelog broja u read_section_from_string, što može dovesti do pisanja podataka izvan dodijeljenog međuspremnika;
  • CVE-2020-14311 - prekoračenje cijelog broja u grub_ext2_read_link, što može dovesti do upisa podataka izvan dodijeljenog međuspremnika;
  • CVE-2020-15705 — omogućuje vam učitavanje nepotpisanih kernela tijekom izravnog pokretanja u Secure Boot modu bez sloja za pričvršćivanje;
  • CVE-2020-15706 — pristup već oslobođenom memorijskom području (use-after-free) prilikom redefiniranja funkcije tijekom izvođenja;
  • CVE-2020-15707 — prekoračenje cijelog broja u rukovatelju veličinom initrd.

Objavljena su ažuriranja paketa hitnih popravaka za Debian, Ubuntu, RHEL и SUSE. Za GRUB2 zaprosio set zakrpa.

Izvor: opennet.ru

Dodajte komentar