GRUB2 laadijast on eemaldatud 7 haavatavust, mis vĂ”imaldavad mööda minna UEFI Secure Boot mehhanismist ja kĂ€ivitada mitteverifitseeritud koodi, nĂ€iteks viia lĂ€bi pahavara sisestamine, mis töötab laadija vĂ”i tuuma tasemel. Samuti on mĂ€rgitud ĂŒks haavatavus shim kihis, mis vĂ”imaldab samuti UEFI Secure Boot'i ĂŒmber kĂ€ia. Haavatavuste rĂŒhm sai koodnimeks Boothole 3, sarnaselt varasemate probleemidega, mis tuvastati laadijas.
GRUB2 ja shim probleemide kÔrvaldamiseks saavad distributsioonid kasutada SBAT (UEFI Secure Boot Advanced Targeting) mehhanismi, mille tugi on rakendatud GRUB2, shim ja fwupd jaoks. SBAT on vÀlja töötatud koostöös Microsoftiga ja eeldab, et UEFI komponentide tÀitmisfailidesse lisatakse tÀiendavaid metaandmeid, mis sisaldavad teavet tootja, toote, komponendi ja versiooni kohta. Need metaandmed allkirjastatakse digitaalsete allkirjadega ja vÔivad eraldi kuuluda lubatud vÔi keelatud komponentide loetellu UEFI Secure Boot jaoks.
Enamikus Linuxi distributsioonides kasutatakse UEFI Secure Boot reĆŸiimis kinnitatud laadimise jaoks vĂ€ikest shim-vahetust, mille on digitaalselt allkirjastanud Microsoft. See vahetus verifitseerib GRUB2 oma sertifikaadiga, mis vĂ”imaldab distributsioonide arendajatel mitte kinnitada iga kerneli ja GRUBi uuendust Microsoftis. GRUB2 haavatavused vĂ”imaldavad koodi tĂ€itmist vahetuse tĂ”endamise jĂ€rgselt, kuid enne operatsioonisĂŒsteemi laadimist, sekkudes usaldusprotsessi Secure Boot aktiivse reĆŸiimi ajal ja saavutades tĂ€ieliku kontrolli laadimisprotsessi ĂŒle, sealhulgas teise OS-i laadimise, operatsioonisĂŒsteemi komponentide muutmise ja Lockdown kaitse mööda mineku.
Laadija probleemide kĂ”rvaldamiseks peavad distributsioonid looma uusi sise digitaalseid allkirju ja vĂ€rskendama installereid, laadijaid, tuumapakette, fwupd-firmware ja shim kihte. Enne SBAT-i rakendamist oli tagasivĂ”etud sertifikaatide nimekirja (dbx, UEFI Revocation List) vĂ€rskendamine vajalik tĂ€ieliku haavatavuse blokeerimise jaoks, kuna rĂŒndaja, sĂ”ltumata kasutatavast operatsioonisĂŒsteemist, vĂ”is UEFI Secure Boot'i kompromiteerida, kasutades vanemat haavatavat GRUB2 versiooni, mis oli digitaalselt allkirjastatud.
SBAT-i allkirja tĂŒhistamise asemel vĂ”imaldab see blokeerida selle kasutamise ĂŒksikute komponentide versioonide numbrite kaupa, ilma et oleks vaja tĂŒhistada Secure Boot jaoks mĂ”eldud vĂ”tmeid. Haavatavuste blokeerimine SBAT-i kaudu ei nĂ”ua UEFI tagasi vĂ”etud sertifikaatide loendi (dbx) kasutamist, vaid toimub sisemise vĂ”tme asendamise tasandil allkirjade vormimiseks ja GRUB2, shim ja teiste distribuutorite laadimisartefaktide vĂ€rskendamiseks. Praegu on SBAT-i tugi juba lisatud enamikku populaarsetesse Linuxi distributsioonidesse.
Tuvastatud haavatavused:
- CVE-2021-3696, CVE-2021-3695 - mĂ€lu mahutavuse ĂŒlevool PNG-piltide töötlemisel, mida teoreetiliselt saab kasutada rĂŒndaja koodi tĂ€itmise korraldamiseks ja UEFI Secure Boot'i mööda minemiseks. MĂ€rgitakse, et probleemi on keeruline Ă€ra kasutada, kuna töötava eksploitatsiooni loomiseks on vajalik palju tegureid ja teadmisi mĂ€lu jaotusest.
- CVE-2021-3697 - ala piiride ĂŒlevool JPEG-piltide töötlemise koodis. Probleemi Ă€rakasutamine nĂ”uab teadlikkust mĂ€lu jaotusest ja on keerukuse poolest sarnaselt PNG probleemiga (CVSS 7.5).
- CVE-2022-28733 - tĂ€isarvude ĂŒlevool funktsioonis grub_net_recv_ip4_packets(), mis vĂ”imaldab mĂ”jutada parameetrit rsm->total_len spetsiaalselt vormindatud IP-paketi saatmise kaudu. Seda probleemi peetakse kĂ”ige ohtlikumaks esitatud haavatavustest (CVSS 8.1). Kui eksploteerida, vĂ”imaldab see haavatavus kirjutada andmeid mĂ€lu piirest vĂ€lja, kasutades teadlikult vĂ€iksemat mĂ€lu suurust.
- CVE-2022-28734 - ĂŒhekohaline mĂ€lu ĂŒlevool jagatud HTTP-pealkirjade töötlemisel. Probleem vĂ”ib pĂ”hjustada GRUB2 metaandmete rikkumist (nullbaiti kirjutamine kohe peale vahemĂ€lu lĂ”ppu) spetsiaalselt vormindatud HTTP-pĂ€ringute töötlemisel.
- CVE-2022-28735 - probleem shim_lock valideerijas, mis vĂ”imaldab laadida faile, mis ei ole seotud tuumaga. Haavatavust saab kasutada UEFI Secure Boot reĆŸiimis allkirjastamata digitaalsete moodulite vĂ”i mittetuvastatud koodi laadimiseks.
- CVE-2022-28736 - juurdepÀÀs juba vabastatud mĂ€lupiirkonnale funktsioonis grub_cmd_chainloader() lĂ€bi chainloader kĂ€su korduslĂ€bimise, mis on loodud toetama operatsioonisĂŒsteemide laadimist, mida GRUB2 ei toeta. Eksploteerimine vĂ”ib viia rĂŒndaja koodi tĂ€itmiseni, kui kurjategija suudab mÀÀrata GRUB2 mĂ€lu jaotuse omadusi.
- CVE-2022-28737 - mĂ€lu ĂŒlevool shim kihis, mis esineb funktsioonis handle_image() spetsiaalselt vormindatud EFI piltide laadimisel ja tĂ€itmisel.
Allikas: opennet.ru
