Në drejtorin që siguron funksionimin me sistemin e skedarëve NTFS në bootloader-in GRUB2, është identifikuar një dobësi (CVE-2023-4692), e cila lejon ekzekutimin e kodit tuaj në nivelin e bootloader-it kur lidhet me një imazh të veçantë të sistemit të skedarëve. Kjo dobësi mund të përdoret për të anashkaluar mekanizmin e verifikimit të ngarkesës UEFI Secure Boot.
Dobësia shkaktohet nga një gabim në kodin e analizës së atributeve NTFS "$ATTRIBUTE_LIST" (grub-core/fs/ntfs.c), e cila mund të përdoret për të shkruar informacione të kontrolluara nga përdoruesi në një zonë të memories jashtë buffer-it të alokuar. Gjatë përpunimit të një imazhi të veçantë NTFS, mbushja e memories çon në rikthimin e një pjese të memories së GRUB-it dhe, nën disa kushte, në dëmtimin e zonës së memories së firmware-it UEFI, çka potencialisht lejon ekzekutimin e kodit tuaj në nivelin e bootloader-it ose firmware-it.
Për më tepër, në drejtorin NTFS të GRUB2 është identifikuar edhe një dobësi tjetër (CVE-2023-4693), e cila lejon leximin e përmbajtjes së një zone të arbitrare të memories gjatë analizës së atributeve "$DATA" në një imazh të veçantë NTFS. Ndër të tjera, kjo dobësi lejon nxjerrjen e të dhënave të ndjeshme, të ruajtura në memory, ose përcaktimin e vlerave të variablave EFI.
Problemet janë zgjidhur deri tani vetëm në formën e një patchi. Statusi i zgjidhjes së dobësive në distribuimet mund të vlerësohet në këto faqe: Debian, Ubuntu, SUSE, RHEL, Fedora. Për të zgjidhur problemet në GRUB2, thjesht përditësimi i paketës nuk mjafton, gjithashtu kërkohet formimi i nënshkrimeve digjitale të reja dhe përditësimi i instaluesve, bootloader-ëve, paketimeve të kernel-it, firmware-ve fwupd dhe shtresës shim.
Në shumicën e distribucioneve Linux, për ngarkimin e verifikuar në mënyrën UEFI Secure Boot përdoret një shtresë e vogël shim, e çertifikuar nga një nënshkrim digjital i Microsoft. Kjo shtresë verifikon GRUB2 me çertifikatën e saj, duke lejuar zhvilluesit e distribucioneve që të mos e çertifikojnë çdo përditësim të kernelit dhe GRUB në Microsoft. Vulnerabilitetet në GRUB2 lejojnë ekzekutimin e kodit të tyre pas verifikimit të suksesshëm të shim, por para ngarkimit të sistemit operativ, duke u futur në zinxhirin e besueshmërisë gjatë operacionit të aktivizuar të Secure Boot dhe duke marrë kontroll të plotë mbi procesin e ngarkimit, për shembull, për të ngarkuar një OS tjetër, modifikuar komponentët e sistemit operativ dhe për të anashkaluar mbrojtjen Lockdown.
Për të bllokuar vulnerabilitetin pa anulluar nënshkrimin digjital, shpërndarjet mund të përdorin mekanizmin SBAT (UEFI Secure Boot Advanced Targeting), mbështetje e të cilit është realizuar për GRUB2, shim dhe fwupd në shumicën e shpërndarjeve të njohura Linux. SBAT është zhvilluar në bashkëpunim me Microsoft dhe parashikon shtimin e metadatas në skedarët ekzekutivë të komponenteve UEFI, që përfshin informacion mbi prodhuesin, produktin, komponentin dhe versionin. Këto metadata nënshkruhen me një nënshkrim digjital dhe mund të përfshihen veçmas në listat e miratuara ose të ndaluara për UEFI Secure Boot.
SBAT lejon të bllokojë përdorimin e nënshkrimit digjital për versione të veçanta të komponimeve pa nevojën për të tërhequr çelësat për Secure Boot. Bllokimi i dobësive përmes SBAT nuk kërkon përdorimin e listës së tërhequr të certifikatave UEFI (dbx), por bëhet në nivelin e zëvendësimit të çelësit të brendshëm për formimin e nënshkrimeve dhe përditësimin e GRUB2, shim dhe artefakteve të tjera të boot-it të shpërndara nga distribucione. Para implementimit të SBAT, përditësimi i listës së tërhequr të certifikatave (dbx, Lista e Revokimit UEFI) ishte një kusht i domosdoshëm për bllokimin e plotë të dobësive, pasi sulmuesi, pavarësisht nga sistemi operativ i përdorur, mund të përdorte boot-in për të komprometuar UEFI Secure Boot.
Burimi: opennet.ru
