GRUB2 laadijaga NTFS-failisüsteemi haldamiseks ettenähtud draiveris avastati haavatavus (CVE-2023-4692), mis võimaldab käivitada oma koodi laadijatasemel, kui pöörduda spetsiaalselt kujundatud failisüsteemi pildi poole. Seda haavatavust saab kasutada UEFI Secure Booti kontrollitud käivitamise mehhanismi ümberminekuks.
Haavatavus tuleneb veast NTFS-attribuudi "$ATTRIBUTE_LIST" (grub-core/fs/ntfs.c) tõlgendamise koodis, mida saab kasutada kasutaja poolt kontrollitava teabe kirjutamiseks mälupiirkonda, mis asub määratud puhvri piiridest väljas. Spetsiaalselt kujundatud NTFS-pildi töötlemisel viib üleujutus GRUBi mälu osa ülekirjutamiseni, samuti teatud tingimustel UEFI mälufirma osa kahjustamiseni, mis võimaldab potentsiaalselt käivitada oma koodi laadijatasemel või firma tasemel.
Lisaks on GRUB2 NTFS-draiveris avastatud veel üks haavatavus (CVE-2023-4693), mis võimaldab lugeda mistahes mälupiirkonna sisu, kui tõlgendatakse attribuuti "$DATA" spetsiaalselt kujundatud NTFS-pildis. Üks haavatavuse tagajärgi on konfidentsiaalsete andmete väljavõtmine, mis on vahemälus, või EFI muutujate väärtuste määramine.
Probleemid on praegu lahendatud ainult patšina. Haavatavuste kõrvaldamise staatust jaotustes saab hinnata nendel lehtedel: Debian, Ubuntu, SUSE, RHEL, Fedora. GRUB2 probleemide lahendamiseks ei piisa pelgalt paketi uuendamisest; on vajalik ka uute sisemiste digitaalsete allkirjade vormistamine ning paigaldusprogrammide, laadijate, kernelipakettide, fwupd-firmwarede ja shim-kihtide uuendamine.
Enamikus Linuxi distributsioonides kasutatakse UEFI Secure Booti kinnitatud laadimise jaoks väikest shim-kihti, mille on digitaalallkirjastanud Microsoft. See kiht kontrollib GRUB2 oma sertifikaadiga, võimaldades distributsioonide arendajatel mitte allkirjastada iga kernelit ja GRUB-i Microsoftis. GRUB2 haavatavused võimaldavad koodi käivitamist pärast shim-i edukat kontrollimist, kuid enne operatsioonisüsteemi laadimist, sekkudes usaldusketti aktiivse Secure Booti režiimis ja saavutades täieliku kontrolli edasise laadimisprotsessi üle, näiteks teise operatsioonisüsteemi laadimise, operatsioonisüsteemi komponentide modifitseerimise ja Lockdown kaitse ümbersuunamise jaoks.
Digitaalallkirja tagasi võtmata haavatavuse blokeerimiseks võivad distributsioonid kasutada SBAT (UEFI Secure Boot Advanced Targeting) mehhanismi, mille toetust on rakendatud GRUB2, shim ja fwupd enamikus populaarsetes Linuxi distributsioonides. SBAT on välja töötatud koostöös Microsoftiga ning see hõlmab täiendavate metainformatsioonide lisamist UEFI komponente sisaldavatesse täiturfailidesse, sealhulgas tootja, toote, komponendi ja versiooni teavet. Mainitud metainformatsioon on digitaalallkirjaga allkirjastatud ja seda saab eraldi lisada lubatud või keelatud komponentide loetellu UEFI Secure Boot jaoks.
SBAT võimaldab blokeerida digitaalallkirja kasutamise teatud komponendi versioonide jaoks, ilma et oleks vaja tagasi kutsuda võtmeid Secure Booti jaoks. Haavatavuste blokeerimine SBAT kaudu ei nõua UEFI tagasikutsumise sertifikaatide loendi (dbx) kasutamist ja toimub sisemise võtme asendamise tasemel allkirjade vormistamiseks ja GRUB2, shim ja teiste jaotustes pakutud käivitamisartefaktide uuendamiseks. Enne SBAT rakendamist oli tagasikutsumise sertifikaatide loendi (dbx, UEFI Revocation List) uuendamine täieliku haavatavuse blokeerimise tingimus, kuna ründaja, sõltumata kasutatavast operatsioonisüsteemist, võis haavatavuse ärakasutamiseks kasutada laadijat.
Allikas: opennet.ru
