Sårbarheder i GRUB2, der muliggør omgåelse af UEFI Secure Boot

Syv sårbarheder er blevet rettet i GRUB2 bootloaderen, som muliggør omgåelse af UEFI Secure Boot og får ikke-valideret kode til at køre, for eksempel ved at integrere malware, der fungerer på niveau med bootloaderen eller kernen. Der nævnes desuden en sårbarhed i shim-laget, som også tillader omgåelse af UEFI Secure Boot. Gruppen af sårbarheder har fået kodeordet Boothole 3, ligesom tidligere lignende problemer opdaget i bootloaderen.

For at løse problemerne i GRUB2 og shim kan distributioner anvende SBAT-mekanismen (UEFI Secure Boot Advanced Targeting), som understøttes i GRUB2, shim og fwupd. SBAT er udviklet i samarbejde med Microsoft og indebærer tilføjelse af metadata til de eksekverbare filer af UEFI-komponenter, der indeholder oplysninger om producent, produkt, komponent og version. De nævnte metadata signeres digitalt og kan separat inkluderes i lister over tilladte eller forbudte komponenter til UEFI Secure Boot.

I de fleste Linux-distributioner anvendes et lille shim-lag, der er digitalt signeret af Microsoft, til verificeret boot i UEFI Secure Boot-tilstand. Dette lag verificerer GRUB2 med sit eget certifikat, hvilket gør det muligt for distributionsudviklere ikke at skulle signere hver opdatering af kernen og GRUB i Microsoft. Sårbarheder i GRUB2 tillader eksekvering af egen kode efter en vellykket verifikation af shim, men før operativsystemet er indlæst, ved at trænge ind i tillidskæden under aktiv Secure Boot-tilstand og få fuld kontrol over den fortsatte bootproces, herunder nedlæsning af et andet OS, ændring af komponenter i operativsystemet og omgåelse af Lockdown-beskyttelsen.

For at løse problemerne i bootloaderen må distributioner skabe nye interne digitale signaturer og opdatere installatører, bootloadere, kernepakker, fwupd-firmware og shim-laget. Før implementeringen af SBAT var opdatering af listen over tilbagekaldte certifikater (dbx, UEFI Revocation List) en forudsætning for fuldstændig at blokere sårbarheden, da angriberen, uanset hvilket operativsystem der anvendes, kunne kompromittere UEFI Secure Boot ved at bruge et bootmedie med en gammel sårbar version af GRUB2, der var digitalt signeret.

I stedet for at tilbagekalde signaturen tillader SBAT at blokere dens anvendelse for specifikke versionsnumre af komponenter uden at skulle tilbagekalde nøglerne til Secure Boot. Blokering af sårbarheder via SBAT kræver ikke brug af listen over tilbagekaldte UEFI-certifikater (dbx), og sker på niveauet for udskiftning af den interne nøgle til dannelse af signaturer samt opdatering af GRUB2, shim og andre leverede distributionsboot artefakter. I øjeblikket er SBAT-support allerede tilføjet i de fleste populære Linux-distributioner.

Identificerede sårbarheder:

  • CVE-2021-3696, CVE-2021-3695 - buffer overflow i heap'en ved behandling af specielt udformede PNG-billeder, som teoretisk kan udnyttes til at udføre ondsindet kode og omgå UEFI Secure Boot. Det bemærkes, at problemet er vanskeligt at udnytte, da der kræves en række faktorer og kendskab til hukommelseslayoutet for at skabe en fungerende exploit.
  • CVE-2021-3697 - buffer underflow i koden til behandling af JPEG-billeder. Udnyttelse af problemet kræver viden om hukommelseslayoutet og ligger på samme kompleksitetsniveau som PNG-problemet (CVSS 7.5).
  • CVE-2022-28733 - heltals overflow i funktionen grub_net_recv_ip4_packets(), som muliggør indflydelse på parameteret rsm->total_len via sending af et specielt udformet IP-pakke. Problemet er bemærket som det mest kritiske blandt de præsenterede sårbarheder (CVSS 8.1). Ved en vellykket udnyttelse tillader sårbarheden at skrive data uden for buffergrænsen ved at allokere mindre hukommelse end nødvendigt.
  • CVE-2022-28734 - byte overflow ved behandling af delte HTTP-headere. Problemet kan føre til beskadigelse af GRUB2 metadata (optagelse af en nul-byte lige efter slutningen af bufferet) ved parsing af specielt udformede HTTP-anmodninger.
  • CVE-2022-28735 - problem i shim_lock-verifikatoren, der muliggør indlæsning af filer, der ikke er relateret til kernen. Sårbarheden kan udnyttes til at indlæse usignerede digitale signaturmoduler eller uverificeret kode i UEFI Secure Boot-tilstand.
  • CVE-2022-28736 — adgang til et allerede frigivet hukommelsesområde i funktionen grub_cmd_chainloader() via gentagen kørsel af chainloader-kommandoen, der bruges til at indlæse operativsystemer, der ikke understøttes i GRUB2. Udnyttelse kan føre til udførelse af ondsindet kode, hvis en angriber kan bestemme detaljerne om hukommelsesfordelingen i GRUB2.
  • CVE-2022-28737 — bufferoverflow i shim-laget, der opstår i funktionen handle_image() under indlæsning og udførelse af specielt udformede EFI-billeder.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster