Zranitelnosti v GRUB2, které umožňují obejít UEFI Secure Boot

V načítači GRUB2 bylo odstraněno 7 zranitelností, které umožňují obejít mechanismus UEFI Secure Boot a spustit neověřený kód, například provést implantaci malwaru, který funguje na úrovni načítače nebo jádra. Dále byla zaznamenána jedna zranitelnost v mezivrstvě shim, která také umožňuje obejít UEFI Secure Boot. Skupina zranitelností získala kódové jméno Boothole 3, podobně jako dříve identifikované problémy v načítači.

Pro odstranění problémů v GRUB2 a shim budou distribuce schopny využít mechanismus SBAT (UEFI Secure Boot Advanced Targeting), jehož podpora byla zavedena pro GRUB2, shim a fwupd. SBAT byl vyvinut ve spolupráci s Microsoftem a zahrnuje přidání dalších metadat do spustitelných souborů komponentů UEFI, která obsahují informace o výrobci, produktu, komponentě a verzi. Tato metadata jsou digitálně podepsaná a mohou být samostatně zahrnuta do seznamů povolených nebo zakázaných komponentů pro UEFI Secure Boot.

Ve většině linuxových distribucí se pro ověřené spuštění v režimu UEFI Secure Boot používá malá vrstva shim, která je ověřena digitálním podpisem Microsoftu. Tato vrstva ověřuje GRUB2 vlastními certifikáty, což umožňuje vývojářům distribucí neověřovat každou aktualizaci jádra a GRUB u Microsoftu. Zranitelnosti v GRUB2 umožňují dosáhnout vykonávání vlastního kódu ve fázi po úspěšném ověření shim, ale před spuštěním operačního systému, což se proklíná do řetězce důvěry v aktivním režimu Secure Boot a získává plnou kontrolu nad dalším procesem zavádění, včetně zavádění jiného OS, modifikace komponentů operačního systému a obcházení ochrany Lockdown.

Aby bylo možné odstranit problémy v načítači, budou muset distribuce vytvořit nové vnitřní digitální podpisy a aktualizovat instalátory, načítače, balíčky s jádrem, fwupd firmwary a shim mezivrstvu. Před zavedením SBAT bylo aktualizace seznamu odvolaných certifikátů (dbx, UEFI Revocation List) povinným předpokladem pro úplné zablokování zranitelnosti, protože útočník, bez ohledu na použité operační systém, mohl pro kompromitaci UEFI Secure Boot použít spustitelný nosič se starou zranitelnou verzí GRUB2, podepsanou digitálním podpisem.

Místo odvolání podpisu SBAT umožňuje blokovat jeho používání pro jednotlivé verze komponentů, aniž by bylo nutné odvolávat klíče pro Secure Boot. Blokování zranitelností pomocí SBAT nevyžaduje použití seznamu odvolaných certifikátů UEFI (dbx), a provádí se na úrovni výměny vnitřního klíče pro vytváření podpisů a aktualizaci GRUB2, shim a dalších dodávaných artefaktů načítače. V současné době byla podpora SBAT již přidána do většiny populárních distribucí Linux.

Zjištěné zranitelnosti:

  • CVE-2021-3696, CVE-2021-3695 - přetečení zásobníku v haldě při zpracování speciálně formátovaných PNG obrázků, které teoreticky lze použít k provedení kódu útočníka a obcházení UEFI Secure Boot. Je uvedeno, že problém je těžko zneužitelný, protože k vytvoření funkčního exploit je třeba splnit řadu faktorů a mít znalosti o uspořádání paměti.
  • CVE-2021-3697 - přetečení při dolním okraji zásobníku (buffer underflow) v kódu pro zpracování JPEG obrázků. Zneužití tohoto problému vyžaduje získání informací o uspořádání paměti a je přibližně na stejné úrovni složitosti jako problém s PNG (CVSS 7.5).
  • CVE-2022-28733 - přetečení celého čísla v funkci grub_net_recv_ip4_packets(), které umožňuje ovlivnit parametr rsm->total_len prostřednictvím odeslání speciálně formátovaného IP paketu. Problém je označen jako nejnebezpečnější z uvedených zranitelností (CVSS 8.1). Při úspěšném zneužití zranitelnost umožňuje zapsat data za hranici zásobníku prostřednictvím alokace záměrně menší velikosti paměti.
  • CVE-2022-28734 - jedním bajtem přetečení zásobníku při zpracování oddělených HTTP hlaviček. Problém může vést k poškození metadat GRUB2 (zápis nulového bajtu ihned za koncem zásobníku) při analýze speciálně formátovaných HTTP požadavků.
  • CVE-2022-28735 - problém ve verifikátoru shim_lock, který umožňuje nahrát soubory, které se netýkají jádra. Zranitelnost může být použita k načtení nezaručených digitálně podepsaných modulů jádra nebo neověřeného kódu v režimu UEFI Secure Boot.
  • CVE-2022-28736 - přístup k již uvolněné oblasti paměti ve funkci grub_cmd_chainloader() při opakovaném spuštění příkazu chainloader, který se používá k načtení operačních systémů, které nejsou podporovány v GRUB2. Zneužití může vést k provedení kódu útočníka, pokud útočník dokáže určit zvláštnosti rozložení paměti v GRUB2.
  • CVE-2022-28737 - přetečení zásobníku v mezičlánku shim, které nastává ve funkci handle_image() při načítání a provádění speciálně formátovaných obrazů EFI.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster