Avalikustati teave 8 haavatavuse kohta GRUB2 alglaaduris, mis vÔimaldavad mööda minna UEFI Secure Boot mehhanismist ja kÀivitada verifitseerimata koodi, nÀiteks paigaldada pahavara, mis töötab alglaaduri vÔi kerneli tasemel.
Tuletame meelde, et enamikus Linuxi distributsioonides kasutatakse verifitseeritud kĂ€ivitamiseks UEFI Secure Boot reĆŸiimis vĂ€ikest shim-vahekihti, mis on allkirjastatud Microsofti digiallkirjaga. See vahekiht verifitseerib GRUB2 oma sertifikaadiga, mis vĂ”imaldab distributsioonide arendajatel mitte allkirjastada Microsoftis iga kerneli ja GRUBi uuendust. GRUB2 haavatavused vĂ”imaldavad kĂ€ivitada oma koodi pĂ€rast shimi edukat verifitseerimist, kuid enne operatsioonisĂŒsteemi laadimist, sekkudes aktiivse Secure Boot reĆŸiimi korral usaldusahelasse ja saades tĂ€ieliku kontrolli edasise alglaadimisprotsessi ĂŒle, sealhulgas teise operatsioonisĂŒsteemi kĂ€ivitamiseks, operatsioonisĂŒsteemi komponentide muutmiseks ja Lockdown-kaitse ĂŒmbersĂ”itmiseks.
Nagu ka eelmise aasta BootHole'i haavatavuse puhul, ei piisa probleemi kĂ”rvaldamiseks ainult alglaaduri uuendamisest, sest rĂŒndaja vĂ”ib kasutatavast operatsioonisĂŒsteemist sĂ”ltumata UEFI Secure Boot kompromiteerimiseks kasutada alglaadimiskandjat vana haavatava GRUB2 versiooniga, mis on digitaalselt allkirjastatud. Probleemi saab lahendada ainult tĂŒhistatud sertifikaatide loendi (dbx, UEFI Revocation List) uuendamisega, kuid sel juhul kaob vĂ”imalus kasutada vanu Linuxi paigalduskandjaid.
SĂŒsteemides, mille pĂŒsivaras on tĂŒhistatud sertifikaatide loend uuendatud, saab UEFI Secure Boot reĆŸiimis kĂ€ivitada ainult Linuxi distributsioonide uuendatud versioone. Distributsioonid peavad omakorda uuendama paigaldajaid, alglaadureid, kerneli pakette, fwupd-pĂŒsivara ja shim-vahekihti ning looma neile uued digiallkirjad. Kasutajad peavad uuendama paigaldustĂ”mmiseid ja muid alglaadimiskandjaid ning laadima tĂŒhistatud sertifikaatide loendi (dbx) UEFI pĂŒsivarasse. Kuni dbx-i UEFI-s ei uuendata, jÀÀb sĂŒsteem haavatavaks sĂ”ltumata sellest, kas operatsioonisĂŒsteemis on uuendused paigaldatud. Haavatavuste kĂ”rvaldamise staatust saab hinnata jĂ€rgmistel lehtedel: Ubuntu, SUSE, RHEL, Debian.
TĂŒhistatud sertifikaatide levitamisel tekkivate probleemide lahendamiseks on edaspidi kavas kasutusele vĂ”tta SBAT-mehhanism (UEFI Secure Boot Advanced Targeting), mille tugi on GRUB2, shim-i ja fwupd jaoks juba rakendatud ning mida hakatakse jĂ€rgmistes uuendustes kasutama paketi dbxtool pakutava funktsionaalsuse asemel. SBAT on vĂ€lja töötatud koostöös Microsoftiga ja see tĂ€hendab uute metaandmete lisamist UEFI komponentide kĂ€ivitatavatesse failidesse; need sisaldavad teavet tootja, toote, komponendi ja versiooni kohta. Need metaandmed kinnitatakse digiallkirjaga ning neid saab tĂ€iendavalt lisada UEFI Secure Booti lubatud vĂ”i keelatud komponentide loenditesse. Nii vĂ”imaldab SBAT tĂŒhistamise korral hallata komponentide versiooninumbreid ilma, et oleks vaja Secure Booti vĂ”tmeid uuesti genereerida vĂ”i luua uusi allkirju kernelile, shim-ile, grub2-le ja fwupd-le.
Tuletatud haavatavused:
- CVE-2020-14372 â kĂ€su acpi abil saab GRUB2-s kohaliku sĂŒsteemi privilegeeritud kasutaja laadida muudetud ACPI-tabeleid, paigutades SSDT (Secondary System Description Table) kataloogi /boot/efi ja muutes seadeid failis grub.cfg. Hoolimata sellest, et Secure Boot on aktiivne, tĂ€idab kernel pakutud SSDT ning seda saab kasutada LockDown-kaitse keelamiseks, mis blokeerib UEFI Secure Bootist möödahiilimise viisid. Selle tulemusena vĂ”ib rĂŒndaja saavutada oma kernelimooduli laadimise vĂ”i kĂ€ivitada koodi mehhanismi kexec kaudu ilma digiallkirja kontrollita.
- CVE-2020-25632 â juurdepÀÀs juba vabastatud mĂ€lualale (use-after-free) kĂ€su rmmod teostuses, mis avaldub katsel eemaldada mis tahes moodulit, arvestamata sellega seotud sĂ”ltuvusi. Haavatavus ei vĂ€lista exploit'i loomist, mis vĂ”ib viia koodi kĂ€ivitamiseni Secure Booti verifitseerimisest mööda minnes.
- CVE-2020-25647 â puhvri piire ĂŒletav kirjutamine funktsioonis grub_usb_device_initialize(), mida kutsutakse USB-seadmete initsialiseerimisel. Probleemi saab Ă€ra kasutada spetsiaalselt ette valmistatud USB-seadme ĂŒhendamisega, mis edastab parameetreid, mille maht ei vasta USB-struktuuride jaoks eraldatud puhvri suurusele. RĂŒndaja vĂ”ib USB-seadmetega manipuleerides saavutada sellise koodi kĂ€ivitamise, mida Secure Boot ei verifitseeri.
- CVE-2020-27749 â puhvri ĂŒletĂ€itumine funktsioonis grub_parser_split_cmdline(), mille vĂ”ib esile kutsuda ĂŒle 1 KB suuruste muutujate mÀÀramine GRUB2 kĂ€sureal. Haavatavus vĂ”imaldab saavutada koodi kĂ€ivitamise, minnes Secure Bootist mööda.
- CVE-2020-27779 â kĂ€sk cutmem vĂ”imaldab rĂŒndajal eemaldada mĂ€lust aadressivahemiku, et minna Secure Bootist mööda.
- CVE-2021-3418 â muudatused shim_lock-is lĂ”id tĂ€iendava vektori eelmise aasta haavatavuse CVE-2020-15705 Ă€rakasutamiseks. Kui dbx-i paigaldati GRUB2 allkirjastamiseks kasutatav sertifikaat, vĂ”imaldas GRUB2 laadida otse mis tahes tuuma ilma allkirja kontrollimata.
- CVE-2021-20225 â vĂ”imalus kirjutada andmeid puhvri piiridest vĂ€ljapoole kĂ€skude kĂ€ivitamisel vĂ€ga suure arvu valikutega.
- CVE-2021-20233 â vĂ”imalus kirjutada andmeid puhvri piiridest vĂ€ljapoole puhvri suuruse vale arvutamise tĂ”ttu jutumĂ€rkide kasutamisel. Suuruse arvutamisel eeldati, et ĂŒhekordse jutumĂ€rgi paojadamiseks on vaja kolme mĂ€rki, kuigi tegelikult on vaja nelja.
Allikas: opennet.ru
