Dvě zranitelnosti v GRUB2, které vám umožňují obejít ochranu UEFI Secure Boot

Byly zveřejněny informace o dvou zranitelnostech v bootloaderu GRUB2, které mohou vést ke spuštění kódu při použití speciálně navržených písem a zpracování určitých sekvencí Unicode. Chyby zabezpečení lze použít k obejití spouštěcího mechanismu ověřeného UEFI Secure Boot.

Zjištěná zranitelnost:

  • CVE-2022-2601 – Přetečení vyrovnávací paměti ve funkci grub_font_construct_glyph() při zpracování speciálně navržených písem ve formátu pf2, ke kterému dochází v důsledku nesprávného výpočtu parametru max_glyph_size a přidělení oblasti paměti, která je zjevně menší, než je nutné přizpůsobit glyfy.
  • CVE-2022-3775 Při vykreslování některých sekvencí Unicode ve speciálně stylizovaném písmu dochází k zápisu mimo hranice. Problém je v kódu zpracování písem a je způsoben nedostatkem řádných kontrol, které by zajistily, že šířka a výška glyfu odpovídá velikosti dostupné bitmapy. Útočník může vytvořit vstup takovým způsobem, aby způsobil, že konec dat bude zapsán mimo přidělenou vyrovnávací paměť. Je třeba poznamenat, že navzdory složitosti využívání této chyby zabezpečení není vyloučeno přenesení problému do spuštění kódu.

Oprava byla zveřejněna jako oprava. Stav odstraňování zranitelností v distribucích lze posoudit na těchto stránkách: Ubuntu, SUSE, RHEL, Fedora, Debian. K vyřešení problémů v GRUB2 nestačí pouze aktualizovat balíček, budete také muset vygenerovat nové interní digitální podpisy a aktualizovat instalační programy, zavaděče, balíčky jádra, firmware fwupd a vrstvu shim.

Většina linuxových distribucí používá malou shim vrstvu digitálně podepsanou Microsoftem pro ověřené spouštění v režimu UEFI Secure Boot. Tato vrstva ověřuje GRUB2 pomocí vlastního certifikátu, který vývojářům distribuce umožňuje nemít každou aktualizaci jádra a GRUB certifikovanou společností Microsoft. Zranitelnosti v GRUB2 vám umožňují dosáhnout spuštění vašeho kódu ve fázi po úspěšném ověření shim, ale před načtením operačního systému, zaklínění se do řetězce důvěry, když je aktivní režim Secure Boot a získání plné kontroly nad dalším procesem spouštění, včetně načtení jiného OS, úprava systému komponent operačního systému a obejití Lockdown ochrany.

K zablokování zranitelnosti bez odvolání digitálního podpisu mohou distribuce použít mechanismus SBAT (UEFI Secure Boot Advanced Targeting), který je podporován pro GRUB2, shim a fwupd ve většině populárních distribucí Linuxu. SBAT byl vyvinut společně se společností Microsoft a zahrnuje přidávání dalších metadat do spustitelných souborů komponent UEFI, které zahrnují informace o výrobci, produktu, komponentě a verzi. Zadaná metadata jsou certifikována digitálním podpisem a mohou být samostatně zahrnuta do seznamů povolených nebo zakázaných součástí pro UEFI Secure Boot.

SBAT umožňuje blokovat používání digitálních podpisů pro jednotlivá čísla verzí komponent, aniž byste museli zrušit klíče pro Secure Boot. Blokování zranitelností přes SBAT nevyžaduje použití seznamu zneplatněných certifikátů UEFI (dbx), ale provádí se na úrovni nahrazení interního klíče pro generování podpisů a aktualizaci GRUB2, shim a dalších bootovacích artefaktů dodávaných distribucemi. Před zavedením SBAT byla aktualizace seznamu zneplatněných certifikátů (dbx, UEFI Revocation List) nezbytným předpokladem pro úplné zablokování zranitelnosti, protože útočník, bez ohledu na použitý operační systém, mohl použít zaváděcí médium se starou zranitelnou verzí GRUB2, certifikován digitálním podpisem, aby byl ohrožen UEFI Secure Boot.

Zdroj: opennet.ru

Přidat komentář