Paljastatud informatsioon 8 GRUB2 alglaadija haavatavuse kohta, mis vĂ”imaldab UEFI Secure Boot'i mehhanismi ĂŒletada ja kĂ€ivitada mitteverifitseeritud koodi, nĂ€iteks viiruste sisenemist alglaadija vĂ”i tuumas.
Tuletame meelde, et enamikus Linuxi jaotustes kasutatakse UEFI Secure Boot'i verifitseeritud kĂ€ivitamiseks vĂ€ikest shim-i kihti, mille on digitaalselt allkirjastanud Microsoft. See kiht verifitseerib GRUB2 enda sertifikaadiga, mis vĂ”imaldab jaotuste arendajatel mitte allkirjastada iga tuuma ja GRUB uuendust Microsoftis. GRUB2-s leiduvad haavatavused vĂ”imaldavad oma koodi kĂ€ituda pĂ€rast shim'i eduka verifitseerimise etappi, kuid enne operatsioonisĂŒsteemi laadimist, sekkudes usaldusketti aktiivse Secure Boot'i reĆŸiimi ajal ning saades tĂ€ieliku kontrolli edasise laadimisprotsessi ĂŒle, sealhulgas teise operatsioonisĂŒsteemi laadimine, operatsioonisĂŒsteemi komponentide muutmine ja Lockdown'i kaitse ĂŒletamine.
Nagu eelneva aasta BootHole haavatavuse puhul, ei piisa probleemi lahendamiseks lihtsalt laadija vĂ€rskendamisest, kuna rĂŒndaja, sĂ”ltumata kasutatavast operatsioonisĂŒsteemist, vĂ”ib UEFI Secure Boot'i kompromiteerimiseks kasutada vanemat haavatavat GRUB2 versiooni, mille digitaalne allkiri on kehtiv. Probleem lahendatakse ainult sertifikaatide tĂŒhistamise loendi (dbx, UEFI Revocation List) vĂ€rskendamisega, kuid sel juhul kaob vĂ”imalus kasutada vanu Linuxi installikandjaid.
UEFI Secure Boot reĆŸiimis saavad sĂŒsteemid, millel on vĂ€rskendatud tagasilĂŒkatud sertifikaatide nimekiri, laadida ainult vĂ€rskendatud Linuxi levituste kompaktsioone. Levituselt on vajalik vĂ€rskendada installijad, alglaadijad, tuumarakenduste paketid, fwupd-firmad ja shim-kiht, genereerides neile uued digitaalsed allkirjad. Kasutajad peavad vĂ€rskendama installipilte ja muid alglaadimisvahendeid, samuti laadima UEFI pĂŒsivara sertifikaatide tagasilĂŒkkamise nimekirja (dbx). Enne dbx-i vĂ€rskendamist UEFIs jÀÀb sĂŒsteem haavatavaks, olenemata OS-i vĂ€rskenduste installimisest. Haavatavuste kĂ”rvaldamise staatust saab hinnata jĂ€rgmistelt lehtedelt: Ubuntu, SUSE, RHEL, Debian.
Tulevikus kavatsetakse probleemide lahendamiseks, mis on seotud tagasivÔetud sertifikaatide levitamisega, rakendada SBAT (UEFI Secure Boot Advanced Targeting) mehhanismi, mille toetus on rakendatud GRUB2, shim'i ja fwupd'i jaoks ning mida hakatakse kasutama alates jÀrgmistest uuendustest, asendades dbxtool'i paketi pakutud funktsionaalsuse. SBAT on vÀlja töötatud koostöös Microsoftiga ja tÀhendab tÀiendavate metateabe lisamist UEFI komponentide tÀidesaatvatesse failidesse, mis sisaldavad teavet tootja, toote, komponendi ja versiooni kohta. Need metaadressid allkirjastatakse digitaalselt ja neid saab lisada ka UEFI Secure Boot'i lubatud vÔi keelatud komponentide loeteludesse. Seega vÔimaldab SBAT versiooninumbreid tagasivÔetud komponentide puhul manipuleerida ilma, et oleks vaja Secure Boot'i vÔtmeid uuesti genereerida ja ilma vajaduseta koostada uusi allkirju kernel'i, shim'i, grub2 ja fwupd'i jaoks.
Tuvastatud haavatavused:
- CVE-2020-14372 â GRUB2-s töötava acpi kĂ€su abil vĂ”ib privileege omav kohaliku sĂŒsteemi kasutaja laadida modifitseeritud ACPI tabelid, paigaldades SSDT (Secondary System Description Table) katalooge /boot/efi ning muutes seadistusi grub.cfg failis. Isegi Secure Boot'i reĆŸiimi aktiivsuse korral tĂ€idab tuum pakutud SSDT-d ja seda saab kasutada LockDown kaitse keelamiseks, mis takistab UEFI Secure Boot'i ringlĂ€bimist. Selle tulemusena vĂ”ib rĂŒndaja laadida oma tuumamooduli vĂ”i kĂ€ivitada koodi kexec mehhanismi kaudu, ilma digitaalse allkirja kontrollimiseta.
- CVE-2020-25632 â juba vabastatud mĂ€lu alale (use-after-free) viitamine rmmod kĂ€su rakenduses, mis ilmneb katses laadida vĂ€lja mistahes moodul, arvestamata sellega seotud sĂ”ltuvusi. Haavatavus ei vĂ€lista eksploidi loomist, mis vĂ”ib viia koodi tĂ€itmiseni, mööda Secure Boot'i kontrollimist.
- CVE-2020-25647 â бŃfeerite piiri ĂŒles kirjutamise viga funktsioonis grub_usb_device_initialize(), mida kutsutakse vĂ€lja USB-seadmete seadistamisel. Probleemi saab Ă€ra kasutada, kui ĂŒhendada spetsiaalselt valmistatud USB-seade, mis edastab parameetreid, mille suurus ei vasta USB-struktuuride jaoks eraldatud bufeeri suurusele. RĂŒndaja vĂ”ib saavutada koodi tĂ€itmise, mis ei ole Secure Boot'i poolt kontrollitud, manipuleerides USB-seadmetega.
- CVE-2020-27749 â bufeeri ĂŒletĂ€itumine funktsioonis grub_parser_split_cmdline(), mida vĂ”ib esile kutsuda GRUB2 kĂ€sureal ĂŒle 1 KB suuruste muutujate mÀÀramine. See haavatavus vĂ”imaldab koodi tĂ€itmist, mööda minnes Secure Boot'ist.
- CVE-2020-27779 â kĂ€sk cutmem annab rĂŒndajale vĂ”imaluse eemaldada aadresside vahemik mĂ€lust Secure Boot'ist mööda minekuks.
- CVE-2021-3418 â muudatused shim_lock'is on loonud tĂ€iendava kanali eelmisel aastal avastatud haavatavuse CVE-2020-15705 Ă€ra kasutamiseks. dbx-i sertifikaadi paigaldamisel, mida kasutatakse GRUB2 allkirjastamiseks, vĂ”imaldas GRUB2 laadida mis tahes kernelit otse ilma allkirja kontrollimiseta.
- CVE-2021-20225 â vĂ”imalus kirjutada andmeid bufeeri piiridest kaugemale, kui kĂ€ivitatakse kĂ€ske, millel on vĂ€ga palju valikuid.
- CVE-2021-20233 â andmete kirjutamise vĂ”imalus mĂ€lupiiri ĂŒletamiseks vale puhveri suuruse arvutamise tĂ”ttu tsiteerituna. Suuruse arvutamiseks arvati, et ĂŒhe jutumĂ€rgi eemaldamiseks on vaja kolme sĂŒmbolit, kuigi tegelikult on vaja nelja.
Allikas: opennet.ru
