GRUB2 käivitajas 8 haavatavust. Kõige ohtlikum (), milles on koodnimi BootHole, ületada UEFI Secure Boot mehhanism ja installida allkirjastamata pahatahtlikku tarkvara. Selle haavatavuse eripära on see, et probleemist vabanemiseks ei piisa GRUB2 uuendamisest, kuna ründaja võib kasutada käivitusseadet koos vana haavatava versiooniga, mille digitaalne allkiri on valideeritud. Ründaja võib kompromiteerida mitte ainult Linuxi, vaid ka teiste operatsioonisüsteemide, sealhulgas .
Probleem lahendatakse ainult süsteemis (dbx, UEFI tagasikutsumise nimekiri), kuid sel juhul kaotatakse võimalus kasutada vanu installatsioonivahendeid Linuxiga. Mõned seadme tootjad on juba lisanud oma püsivara uuendatud tagasikutsumise sertifikaatide nimekirja, sellistes süsteemides UEFI Secure Boot režiimis saab käivitada ainult uuendatud Linuxi distributiivide kogusid.
Haavatavuse kõrvaldamiseks peate samuti uuendama installer'id, laadijad, kernel'id, fwupd-firmvara ja shim-kihid, genereerides neile uued digitaalsed allkirjad. Kasutajad peavad uuendama installatsioonipilte ja muid käivitusmeedia, samuti laadima alla tagandatud sertifikaatide nimekirja (dbx) UEFI püsivara. Enne dbx-i UEFI-s uuendamist jääb süsteem haavatavaks, sõltumata operatsioonisüsteemi uuenduste installimisest.
Haavatavus puuduvatiim, mida saab kasutada juhusliku koodi täitmiseks käivitamise protsessis.
Haavatavus ilmneb grub.cfg konfiguratsioonifaili sisu analüüsimisel, mis asub tavaliselt ESP (EFI süsteemiosakond) osas ja seda saab ründe korral, kellel on administraatori õigused, muuta, ilma et see rikuks signed käivitatava faili shim ja GRUB2 terviklikkust. Tänu Konfiguratsiooni parsi koodis tähendas YY_FATAL_ERROR'i fatal error handler vaid hoiatuse väljastamist, kuid ei lõpetanud programmi tööd. Haavatavuse oht väheneb nõudega omada süsteemis privileegitud juurdepääsu, kuid probleem võib siiski osutuda vajalikuks peidetud rootkit'ide sissetoomiseks füüsilise juurdepääsu olemasolul seadmetele (kui on võimalik käivitada oma seadmed).
Enamiku Linuxi jaotuste puhul kasutatakse usaldusväärseks käivitamiseks väikest , mille on digitaalselt allkirjastanud Microsoft. See kiht kontrollib GRUB2 oma sertifikaadi abil, võimaldades jaotuste arendajatel mitte allkirjastada iga kernel ja GRUB värskendust Microsoftis. Haavatavus võimaldab, muutes grub.cfg sisu, käivitada oma koodi pärast shim usaldusväärsuse eduka kontrollimise etappi, kuid enne operatsioonisüsteemi käivitamist, nihkumisega usaldusväärsusena Secure Boot aktiivse režiimi all ja saades täieliku kontrolli edasise käivitamise üle, sealhulgas teise OS-i käivitamine, operatsioonisüsteemi komponentide muutmine ja kaitse vältimine. .
Teised GRUB2 haavatavused:
- — puhvriga ülevool, mis tuleneb eraldatud mälu piirkonna suuruse kontrollimise puudumisest grub_malloc funktsioonis;
- — täisarvude ülevool grub_squash_read_symlink funktsioonis, mis võib põhjustada andmete kirjutamist eraldatud puhvri välisse;
- — täisarvude ülevool read_section_from_string funktsioonis, mis võib põhjustada andmete kirjutamist eraldatud puhvri välisse;
- — täisarvude ülevool grub_ext2_read_link funktsioonis, mis võib põhjustada andmete kirjutamist eraldatud puhvri välisse;
- — võimaldab laadida allkirjastamata tuumasid otse Secure Boot režiimis ilma shim vahetükita;
- — ligi pääsemine juba vabastatud mälu piirkonnale (use-after-free) funktsiooni ülekirjutamisel jooksvalt;
- — täisarvude ülevool initrd suuruse töötlijas.
Parandustega pakettide uuendused on välja antud , , ja GRUB2 patchide komplekti jaoks.
Allikas: opennet.ru
