I GRUB2-startaren har sju sÄrbarheter ÄtgÀrdats som gör det möjligt att kringgÄ mekanismen UEFI Secure Boot och köra icke verifierad kod, till exempel genom att införa skadlig programvara som fungerar pÄ startar- eller kÀrnnivÄ. Dessutom har en sÄrbarhet noterats i shim-lagret som ocksÄ gör det möjligt att kringgÄ UEFI Secure Boot. Gruppen av sÄrbarheter fick kodnamnet Boothole 3, i likhet med liknande problem som tidigare har identifierats i startaren.
För att ÄtgÀrda problemen i GRUB2 och shim kommer distributioner att kunna anvÀnda mekanismen SBAT (UEFI Secure Boot Advanced Targeting), vars stöd har implementerats för GRUB2, shim och fwupd. SBAT har utvecklats tillsammans med Microsoft och innebÀr att det lÀggs till metadata i de exekverbara filerna för UEFI-komponenter, som innehÄller information om tillverkare, produkt, komponent och version. Denna metadata signeras digitalt och kan separat inkluderas i listor över tillÄtna eller förbjudna komponenter för UEFI Secure Boot.
I de flesta Linux-distributioner anvÀnds ett litet shim-lager, signerat av Microsoft, för verifierad boot i UEFI Secure Boot-lÀget. Detta lager verifierar GRUB2 med sin egen certifikat, vilket gör att distributionsutvecklare inte behöver signera varje kÀrn- och GRUB-uppdatering i Microsoft. SÄrbarheter i GRUB2 gör det möjligt att köra egen kod efter att shim har verifierats framgÄngsrikt, men före operativsystemets laddning, vilket innebÀr att man kan trÀnga in i förtroendekedjan i aktivt lÀge Secure Boot och fÄ full kontroll över den fortsatta bootprocessen, inklusive laddning av ett annat OS, modifiering av operativsystemets komponenter och kringgÄ skyddet Lockdown.
För att ÄtgÀrda problemen i startaren kommer distributionerna att behöva skapa nya interna digitala signaturer och uppdatera installationsprogram, startare, kernelpaket, fwupd-firmware och shim-lager. Innan SBAT implementerades var det obligatoriskt att uppdatera listan över Äterkallade certifikat (dbx, UEFI Revocation List) för att fullstÀndigt blockera sÄrbarheten, eftersom en angripare, oavsett vilket operativsystem som anvÀndes, kunde anvÀnda ett startmedium med en gammal sÄrbar version av GRUB2, signerat med digital signatur, för att kompromettera UEFI Secure Boot.
IstÀllet för att Äterkalla signaturen möjliggör SBAT att blockera anvÀndningen för specifika versionsnummer av komponenter utan att behöva Äterkalla nycklar för Secure Boot. Att blockera sÄrbarheter via SBAT krÀver ingen anvÀndning av listan över Äterkallade UEFI-certifikat (dbx), utan görs pÄ nivÄn av att ersÀtta den interna nyckeln för att skapa signaturer och uppdatera GRUB2, shim och andra levererade distributionsboot-artefakter. För nÀrvarande har stöd för SBAT redan lagts till i de flesta populÀra Linux-distributioner.
UpptÀckta sÄrbarheter:
- CVE-2021-3696, CVE-2021-3695 â buffertöverskridande i heapen vid hantering av specialdesignade PNG-bilder, vilket teoretiskt kan anvĂ€ndas för att möjliggöra körning av angriparens kod och omgĂ„ UEFI Secure Boot. Det noteras att problemet Ă€r svĂ„rt att utnyttja, eftersom det för att skapa en fungerande exploit krĂ€vs en mĂ€ngd olika faktorer och kĂ€nnedom om minneslayout.
- CVE-2021-3697 â buffertunderflöde (buffer underflow) i koden för hantering av JPEG-bilder. Utnyttjandet av problemet krĂ€ver information om minneslayout och ligger ungefĂ€r pĂ„ samma svĂ„righetsgrad som problemet med PNG (CVSS 7.5).
- CVE-2022-28733 â heltalsöverflöde i funktionen grub_net_recv_ip4_packets(), vilket gör det möjligt att pĂ„verka parametern rsm->total_len genom att skicka ett specialdesignat IP-paket. Problemet anses vara det mest farliga av de presenterade sĂ„rbarheterna (CVSS 8.1). Vid framgĂ„ngsrik exploatering tillĂ„ter sĂ„rbarheten att skriva data utanför bufferten genom att allokera medvetet för liten storlek pĂ„ minnet.
- CVE-2022-28734 â enhandsbuffertöverskridande vid hantering av separerade HTTP-rubriker. Problemet kan leda till skador pĂ„ GRUB2:s metadata (skriva en noll-byte direkt efter slutet av bufferten) vid analys av specialdesignade HTTP-förfrĂ„gningar.
- CVE-2022-28735 â problem i verifieraren shim_lock som möjliggör laddning av filer som inte Ă€r kĂ€rnvĂ€rda. SĂ„rbarheten kan anvĂ€ndas för att ladda osignerad digitalt undertecknade kĂ€rnmoduler eller osĂ€krad kod i UEFI Secure Boot-lĂ€get.
- CVE-2022-28736 â ett anrop till redan frigjord minnesregion i funktionen grub_cmd_chainloader() via en omstart av chainloader-kommandot som anvĂ€nds för att ladda operativsystem som inte stöds i GRUB2. Utnyttjande kan leda till att angriparens kod exekveras om en illasinnad aktör kan identifiera minnesfördelningens egenskaper i GRUB2.
- CVE-2022-28737 â buffertöverflöd i shim-lagret som uppstĂ„r i funktionen handle_image() vid inlĂ€sning och exekvering av sĂ€rskilt utformade EFI-bilder.
KĂ€lla: opennet.ru
