GRUB2 laadijaga töötava NTFS-failisüsteemi draiveris tuvastati haavatavus (CVE-2023-4692), mis võimaldab laadija tasandil oma koodi käivitada, kui pöörduda spetsiaalselt kujundatud failisüsteemi pildi poole. Seda haavatavust saab kasutada UEFI Secure Boot'i allkirjastatud käivitamismehhanismi ümbersuunamiseks.
Haavatavus on põhjustatud veast NTFS-atribuutide "$ATTRIBUTE_LIST" (grub-core/fs/ntfs.c) analüüsi koodis, mida saab kasutada kasutaja kontrollitava teabe kirjutamiseks mälupiiri ületavasse mäluruumi. Spetsiaalselt kujundatud NTFS-pildi töötlemisel toob ülevool kaasa osa GRUBi mälu ülekirjutamise ja teatud tingimustel UEFI püsivara mälu kahjustamise, mis võimaldab potentsiaalselt laadija või püsivara tasemel oma koodi käivitada.
Lisaks tuvastati GRUB2 NTFS-draiveris veel üks haavatavus (CVE-2023-4693), mis võimaldab lugeda määratud mälupiirkonna sisu, kui analüüsida atribuuti "$DATA" spetsiaalselt kujundatud NTFS-pildis. Muuhulgas võimaldab haavatavus välja tõmmata konfidentsiaalseid andmeid, mis on vahemälus jaotatud, või määrata EFI muutujate väärtusi.
Probleemid on seni lahendatud ainult plaastri näol. Haavatavuste kõrvaldamise staatus distributsioonides on hinnatav järgmiste lehekülgede andmetel: Debian, Ubuntu, SUSE, RHEL, Fedora. GRUB2 probleemide lahendamiseks ei piisa lihtsalt paketi uuendamisest; on vajalik ka uusi sisemisi digitaalseid allkirju genereerida ning uuendada installijat, laadijat, tuumapakette, fwupd-püsivara ja shim-kihte.
In most Linux distributions, a small shim layer, signed by Microsoft, is used for verified boot in UEFI Secure Boot mode. This shim verifies GRUB2 with its own certificate, allowing distribution developers to avoid signing every kernel and GRUB update with Microsoft. Vulnerabilities in GRUB2 can enable code execution after the successful verification of the shim, but before the operating system is loaded, infiltrating the trust chain while Secure Boot is active and gaining full control over the boot process, allowing for loading another OS, modifying operating system components, and bypassing Lockdown protection.
Kuna digitaalallkirja tühistamiseta haavatavuste blokeerimiseks võivad jaotised kasutada mehhanismi SBAT (UEFI Secure Boot Advanced Targeting), mille tugi on rakendatud GRUB2, shim ja fwupd enamikes tuntud Linuxi jaotustes. SBAT on välja töötatud koostöös Microsoftiga ja hõlmab UEFI komponente sisaldavate esitamisfailide täiendavate metaandmete lisamist, mis sisaldavad teavet tootja, toote, komponendi ja versiooni kohta. Loomulikult alla kirjutatud metaandmed võivad eraldi kuuluda lubatud või keelatud komponentide loenditesse UEFI Secure Boot jaoks.
SBAT võimaldab blokeerida digitaalse allkirja kasutamist üksikute komponentide versioonide numbrite jaoks ilma vajaduseta tagasi kutsuda võtmeid Secure Boot'i jaoks. SBAT kaudu haavatavuste blokeerimine ei nõua UEFI (dbx) tühistatud sertifikaatide nimekirja kasutamist, vaid toimub sisemise võtme asendamise tasemel allkirjade genereerimiseks ning GRUB2, shim ja teiste tarnitud distributsioonide käivitusartefaktide uuendamiseks. Enne SBAT'i kasutuselevõttu oli tühistatud sertifikaatide nimekirja (dbx, UEFI Revocation List) uuendamine täieliku haavatavuse blokeerimise aluseks, kuna ründaja, sõltumata kasutatavast operatsioonisüsteemist, sai UEFI Secure Boot'i kompromiteerimiseks kasutada käivitus
Allikas: opennet.ru
