Ranjivosti u GRUB2 koje mogu zaobići UEFI Secure Boot

Ispravljeno je 2 ranjivosti u GRUB7 bootloaderu koje vam omogućuju zaobilaženje UEFI Secure Boot mehanizma i pokretanje neprovjerenog koda, na primjer, uvođenje zlonamjernog softvera koji radi na razini bootloadera ili kernela. Dodatno, postoji jedna ranjivost u shim sloju, koja također omogućuje zaobilaženje UEFI Secure Boot. Skupina ranjivosti nazvana je Boothole 3, slično sličnim problemima koji su prethodno identificirani u bootloaderu.

Za rješavanje problema u GRUB2 i shimu, distribucije će moći koristiti mehanizam SBAT (UEFI Secure Boot Advanced Targeting), koji je podržan za GRUB2, shim i fwupd. SBAT je razvijen u suradnji s 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 ovjereni su digitalnim potpisom i mogu se zasebno uključiti u popise dopuštenih ili zabranjenih komponenti za UEFI Secure Boot.

Većina distribucija Linuxa koristi mali podložni sloj digitalno potpisan od strane Microsofta za provjereno pokretanje u UEFI Secure Boot modu. 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. Ranjivosti u GRUB2 omogućuju vam da postignete izvršenje vašeg koda u fazi nakon uspješne provjere shim-a, ali prije učitavanja operativnog sustava, ubacivanje u lanac povjerenja kada je Secure Boot mod aktivan i dobivanje potpune kontrole nad daljnjim postupkom pokretanja, uključujući učitavanje drugog OS-a, mijenjanje komponenti operativnog sustava sustav i zaobilaženje zaštite od zaključavanja.

Kako bi riješili probleme u bootloaderu, distribucije će morati stvoriti nove interne digitalne potpise i ažurirati instalatere, bootloadere, kernel pakete, fwupd firmware i shim sloj. Prije uvođenja SBAT-a, ažuriranje popisa opozvanih certifikata (dbx, UEFI Revocation List) bilo je preduvjet za potpuno blokiranje ranjivosti, budući da je napadač, bez obzira na operativni sustav koji se koristi, mogao koristiti medij za podizanje sustava sa starom ranjivom verzijom GRUB2, ovjeren digitalnim potpisom, kako bi se ugrozio UEFI Secure Boot.

Umjesto opoziva potpisa, SBAT vam omogućuje blokiranje njegove upotrebe za pojedinačne brojeve verzija komponente bez potrebe za opozivom ključeva za sigurno pokretanje. Blokiranje ranjivosti putem SBAT-a ne zahtijeva korištenje liste opoziva UEFI certifikata (dbx), već se izvodi na razini zamjene internog ključa za generiranje potpisa i ažuriranje GRUB2, shim i drugih artefakata pokretanja koje isporučuju distribucije. Trenutno je podrška za SBAT već dodana većini popularnih distribucija Linuxa.

Identificirane ranjivosti:

  • CVE-2021-3696, CVE-2021-3695 su prekoračenja međuspremnika koja se temelje na gomili prilikom obrade posebno dizajniranih PNG slika, koje se teoretski mogu koristiti za izvršavanje koda napadača i zaobilaženje UEFI Secure Boot. Napominje se da je problem teško iskoristiti, budući da stvaranje radnog exploita zahtijeva uzimanje u obzir velikog broja čimbenika i dostupnosti informacija o rasporedu memorije.
  • CVE-2021-3697 - Donji protok međuspremnika u kodu za obradu JPEG slike. Iskorištavanje problema zahtijeva poznavanje rasporeda memorije i otprilike je na istoj razini složenosti kao problem PNG (CVSS 7.5).
  • CVE-2022-28733 - Prelivanje cijelog broja u funkciji grub_net_recv_ip4_packets() omogućuje utjecaj na parametar rsm->total_len slanjem posebno izrađenog IP paketa. Problem je označen kao najopasniji od predstavljenih ranjivosti (CVSS 8.1). Ako se uspješno iskoristi, ranjivost omogućuje zapisivanje podataka izvan granice međuspremnika dodjeljivanjem namjerno manje veličine memorije.
  • CVE-2022-28734 - Jednobajtno prekoračenje međuspremnika prilikom obrade ogoljenih HTTP zaglavlja. Problem može uzrokovati oštećenje GRUB2 metapodataka (zapisivanje nultog bajta neposredno nakon kraja međuspremnika) prilikom raščlanjivanja posebno izrađenih HTTP zahtjeva.
  • CVE-2022-28735 Problem u verifikatoru shim_lock dopušta učitavanje datoteke koja nije kernel. Ranjivost se može koristiti za učitavanje nepotpisanih modula kernela ili neprovjerenog koda u UEFI Secure Boot modu.
  • CVE-2022-28736 Već oslobođeni pristup memoriji u funkciji grub_cmd_chainloader() putem ponovnog pokretanja naredbe chainloader, koja se koristi za pokretanje operativnih sustava koje GRUB2 ne podržava. Iskorištavanje bi moglo rezultirati izvršavanjem koda napadača ako napadač može odrediti dodjelu memorije u GRUB2
  • CVE-2022-28737 - Do prekoračenja međuspremnika u podložnom sloju dolazi u funkciji handle_image() prilikom učitavanja i izvođenja kreiranih EFI slika.

Izvor: opennet.ru

Dodajte komentar