Ranjivosti u GRUB2 koje vam omogućavaju da zaobiđete UEFI Secure Boot

Ispravljeno je 2 ranjivosti u GRUB7 bootloaderu koje vam omogućavaju da zaobiđete UEFI Secure Boot mehanizam i pokrenete neprovjereni kod, na primjer, implementirate malver koji radi na nivou pokretačkog programa ili kernela. Dodatno, postoji jedna ranjivost u shim sloju, koja vam takođe omogućava da zaobiđete UEFI Secure Boot. Grupa ranjivosti dobila je kodni naziv Boothole 3, slično sličnim problemima koji su prethodno identifikovani u bootloaderu.

Za rješavanje problema u GRUB2 i shim-u, distribucije će moći koristiti SBAT (UEFI Secure Boot Advanced Targeting) mehanizam, koji je podržan za GRUB2, shim i fwupd. SBAT je razvijen zajedno sa 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 su sertifikovani digitalnim potpisom i mogu se posebno uključiti u liste dozvoljenih ili zabranjenih komponenti za UEFI Secure Boot.

Većina Linux distribucija koristi mali podložni sloj koji je digitalno potpisao Microsoft za verifikovano pokretanje u UEFI Secure Boot modu. Ovaj sloj verifikuje GRUB2 sopstvenim sertifikatom, što omogućava programerima distribucije da nemaju svako jezgro i ažuriranje GRUB-a sertifikovano od strane Microsofta. Ranjivosti u GRUB2 omogućavaju vam 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 sticanje potpune kontrole nad daljim procesom pokretanja, uključujući učitavanje drugog OS-a, modificiranje sistema komponenti operativnog sistema i zaobilaženje Lockdown zaštite.

Da bi popravile probleme u pokretačkom programu, distribucije će morati da kreiraju nove interne digitalne potpise i ažuriraju instalatere, bootloadere, kernel pakete, fwupd firmver i shim sloj. 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.

Umjesto da opozovete potpis, SBAT vam omogućava da blokirate njegovu upotrebu za pojedinačne brojeve verzija komponenti bez da morate opozvati ključeve za Secure Boot. Blokiranje ranjivosti putem SBAT-a ne zahtijeva upotrebu 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. Trenutno je SBAT podrška već dodana većini popularnih Linux distribucija.

Identifikovane ranjivosti:

  • CVE-2021-3696, CVE-2021-3695 su prekoračenja bafera zasnovana na hrpi prilikom obrade posebno dizajniranih PNG slika, koji se teoretski mogu koristiti za izvršavanje napadačkog koda i zaobilaženje UEFI Secure Boot. Napominje se da je problem teško iskoristiti, budući da kreiranje radnog exploita zahtijeva uzimanje u obzir velikog broja faktora i dostupnosti informacija o rasporedu memorije.
  • CVE-2021-3697 - Nedostatak bafera u kodu za obradu JPEG slike. Iskorištavanje problema zahtijeva poznavanje rasporeda memorije i na približno istom nivou složenosti kao i problem PNG (CVSS 7.5).
  • CVE-2022-28733 - Prekoračenje cijelog broja u funkciji grub_net_recv_ip4_packets() omogućava da se na parametar rsm->total_len utiče slanje posebno kreiranog IP paketa. Problem je označen kao najopasniji od predstavljenih ranjivosti (CVSS 8.1). Ako se uspješno iskoristi, ranjivost omogućava zapisivanje podataka izvan granice bafera dodjeljivanjem namjerno manje veličine memorije.
  • CVE-2022-28734 - Prelivanje bafera od jednog bajta prilikom obrade ogoljenih HTTP zaglavlja. Problem može uzrokovati oštećenje GRUB2 metapodataka (upisivanje nul-bajta odmah nakon kraja bafera) prilikom raščlanjivanja posebno kreiranih HTTP zahtjeva.
  • CVE-2022-28735 Problem u verifikatoru shim_lock dozvoljava učitavanje datoteke bez jezgra. Ranjivost se može koristiti za učitavanje nepotpisanih modula kernela ili neprovjerenog koda u UEFI Secure Boot modu.
  • CVE-2022-28736 Već oslobođen pristup memoriji u funkciji grub_cmd_chainloader() putem ponovnog pokretanja naredbe chainloader, koja se koristi za pokretanje operativnih sistema koje GRUB2 ne podržava. Eksploatacija bi mogla rezultirati izvršavanjem koda napadača ako je napadač u mogućnosti odrediti dodjelu memorije u GRUB2
  • CVE-2022-28737 - Prelivanje bafera u podloškom sloju javlja se u funkciji handle_image() prilikom učitavanja i izvršavanja kreiranih EFI slika.

izvor: opennet.ru

Dodajte komentar