V načítacím programu GRUB2 8 zranitelností. Nejnebezpečnější je (), která nese kódové jméno BootHole, obejít mechanismus UEFI Secure Boot a dosáhnout instalace neověřeného škodlivého softwaru. Vlastností této zranitelnosti je, že k jejímu odstranění není dostatečné jen aktualizovat GRUB2, protože útočník může použít zaváděcí médium se starou zranitelnou verzí, která je ověřena digitálním podpisem. Útočník může kompromitovat proces ověřování nejen Linuxu, ale i dalších operačních systémů, včetně .
Problém lze vyřešit pouze aktualizací systému (dbx, UEFI Revocation List), avšak v tomto případě dojde ke ztrátě možnosti používat stará instalační média s Linuxem. Někteří výrobci hardwaru již zařadili do svých firmware aktualizovaný seznam odvolaných certifikátů, na takových systémech bude možné v režimu UEFI Secure Boot spustit pouze aktualizované verze distribucí Linuxu.
K odstranění zranitelnosti v distribucích bude také nutné aktualizovat instalátory, bootloadery, balíčky jádra, fwupd firmware a shim vrstvu, a generovat pro ně nové digitální podpisy. Uživatelé budou muset aktualizovat instalační obrazy a další zaváděcí média, a také načíst seznam odvolaných certifikátů (dbx) do firmware UEFI. Do aktualizace dbx v UEFI zůstává systém zranitelný, a to i při instalaci aktualizací v OS.
Zranitelnost přetečením bufferu, které může být využito k provedení libovolného kódu během spouštění.
Zranitelnost se projevuje při analýze obsahu konfiguračního souboru grub.cfg, který je obvykle umístěn v oddílu ESP (EFI System Partition) a může být editován útočníkem, který má administrátorská práva, aniž by došlo k porušení integrity podepsaných spustitelných souborů shim a GRUB2. Kvůli v kódu parseru konfigurace, se obslužná rutina fatálních chyb parsování YY_FATAL_ERROR pouze varovala, ale nezastavila program. Nebezpečí zranitelnosti se snižuje tím, že je nutný privilegovaný přístup do systému, nicméně problém může být ve vyžadován pro nasazení skrytých rootkitů při fyzickém přístupu k zařízení (při možnosti zavádění z vlastního média).
Ve většině Linuxových distribucí se pro ověřený boot používá malá , certifikovaná digitálním podpisem Microsoftu. Tato vrstva ověřuje GRUB2 vlastním certifikátem, což umožňuje vývojářům distribucí necertifikovat každou aktualizaci jádra a GRUB u Microsoftu. Zranitelnost umožňuje změnou obsahu grub.cfg dosáhnout provedení vlastního kódu ve fázi po úspěšném ověření shim, ale před načtením operačního systému, čímž se vklíní do řetězce důvěry při aktivním režimu Secure Boot a získá 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 .
Další zranitelnosti v GRUB2:
- — přetečení vyrovnávací paměti v důsledku chybějící kontroly velikosti alokované paměti v grub_malloc;
- — celočíselné přetečení v grub_squash_read_symlink, které může vést k zápisu dat mimo alokovanou vyrovnávací paměť;
- — celočíselné přetečení v read_section_from_string, které může vést k zápisu dat mimo alokovanou vyrovnávací paměť;
- — celočíselné přetečení v grub_ext2_read_link, které může vést k zápisu dat mimo alokovanou vyrovnávací paměť;
- — umožňuje načítání nepodepsaných jader při přímém zavádění v režimu Secure Boot bez vrstvy shim;
- — přístup k již uvolněné oblasti paměti (use-after-free) při přepisování funkce během běhu;
- — celočíselné přetečení v obsluze velikosti initrd.
Byly vydány aktualizace balíčků s opravami pro , , a . Pro GRUB2 sada záplat.
Zdroj: opennet.ru
