Két sérülékenység került napvilágra a GRUB2 indítószoftverben, amelyek lehetővé tehetik a kód végrehajtását speciálisan formázott betűtípusok használata és bizonyos Unicode-sorozatok feldolgozása során. A sérülékenységek kihasználhatók az UEFI Secure Boot hitelesített indítási mechanizmusának megkerülésére.
Feltárt sebezhetőségek:
- CVE-2022-2601 – puffer túlcsordulás a grub_font_construct_glyph() függvényben, amely a pf2 formátumú speciálisan formázott betűtípusok feldolgozása során lép fel a max_glyph_size paraméter helytelen kiszámítása és egy eleve ennél kisebb memória terület lefoglalása miatt.
- CVE-2022-3775 – memóriahatáron túli írás bizonyos Unicode-sorozatok kirajzolásakor speciális betűtípussal. A probléma a betűtípusok feldolgozó kódjában van, és a glif szélessége és magassága valamint az elérhető raszter mérete közötti megfelelő ellenőrzés hiánya okozza. A támadó úgy tudja megadni a bemenetet, hogy az adatvégződés írását a lefoglalt puffer határain túlra kényszerítse. Megjegyzik, hogy a sérülékenység kihasználásának nehézsége ellenére a kód végrehajtásának lehetősége nem zárható ki.
A hiba javítását patch formájában tették közzé. A sérülékenységek elhárításának állapota a disztribúciók esetében ezen az oldalakon értékelhető: Ubuntu, SUSE, RHEL, Fedora, Debian. A GRUB2 problémáinak megoldásához nem elég a csomag frissítése, új belső digitális aláírások generálása és az installáló programok, indítószoftverek, kernel csomagok, fwupd-újraírások, és a shim réteg frissítése is szükséges.
In most Linux distributions, a small shim layer, signed by Microsoft's digital signature, is used for verified boot in UEFI Secure Boot mode. This shim verifies GRUB2 with its own certificate, allowing distribution developers not to sign every kernel and GRUB update with Microsoft. Vulnerabilities in GRUB2 enable the execution of one's code at the stage after successful shim verification but before the operating system loads, intercepting the trust chain while Secure Boot is active and gaining full control over the subsequent boot process, including booting another OS, modifying operating system components, and bypassing Lockdown protection.
A sebezhetőség visszavonása nélküli blokkolásához a disztribúciók használhatják az SBAT mechanizmust (UEFI Secure Boot Advanced Targeting), amelynek támogatása a GRUB2-re, shim-re és fwupd-re a legtöbb népszerű Linux disztribúcióban megvalósult. Az SBAT-ot a Microsoft együttműködésével fejlesztették ki, és plusz metaadaták hozzáadását jelenti az UEFI komponensek végrehajtható fájljaihoz, amelyek tartalmazzák a gyártóról, termékről, komponensről és verzióról szóló információkat. Ezek a metaadatok digitális aláírással hitelesítettek, és külön-külön is szerepelhetnek az UEFI Secure Boot engedélyezett vagy tiltható komponenseinek listáján.
Az SBAT lehetővé teszi a digitális aláírás blokkolását a komponensek egyes verziószámaihoz anélkül, hogy szükség lenne a Secure Boot kulcsok visszavonására. A sebezhetőségek SBAT útján történő blokkolása nem igényli az UEFI visszavont tanúsítványainak listájának (dbx) használatát, hanem a belső kulcs cseréjének szintjén történik a GRUB2, shim és más, disztribúciók által szállított betöltő artefaktumok aláírásához és frissítéséhez. Az SBAT bevezetése előtt a visszavont tanúsítványok listájának (dbx, UEFI Revocation List) frissítése kötelező feltétele volt a sebezhetőség teljes blokkolásának, mivel a támadó, függetlenül a használt operációs rendszertől, egy régi sebezhető GRUB2 verzióval rendelkező boot közeg használatával tudta kompromittálni az UEFI Secure Boot-ot, amelyet digitális aláírás hitelesített.
Forrás: opennet.ru
