Sårbarheter i GRUB2 som lar deg omgå UEFI Secure Boot

2 sårbarheter er fikset i GRUB7 bootloader som lar deg omgå UEFI Secure Boot-mekanismen og kjøre ubekreftet kode, for eksempel introdusere skadelig programvare som kjører på bootloader- eller kjernenivå. I tillegg er det en sårbarhet i shim-laget, som også lar deg omgå UEFI Secure Boot. Gruppen av sårbarheter fikk kodenavnet Boothole 3, lik lignende problemer som tidligere ble identifisert i bootloaderen.

For å feilsøke problemer i GRUB2 og shim, vil distribusjoner kunne bruke SBAT (UEFI Secure Boot Advanced Targeting)-mekanismen, som støttes for GRUB2, shim og fwupd. SBAT ble utviklet i samarbeid med Microsoft og innebærer å legge til ytterligere metadata til de kjørbare filene til UEFI-komponenter, som inkluderer informasjon om produsent, produkt, komponent og versjon. De angitte metadataene er sertifisert med en digital signatur og kan inkluderes separat i listene over tillatte eller forbudte komponenter for UEFI Secure Boot.

De fleste Linux-distribusjoner bruker et lite shim-lag digitalt signert av Microsoft for bekreftet oppstart i UEFI Secure Boot-modus. Dette laget verifiserer GRUB2 med sitt eget sertifikat, som lar distribusjonsutviklere ikke ha hver kjerne- og GRUB-oppdatering sertifisert av Microsoft. Sårbarheter i GRUB2 lar deg oppnå kjøringen av koden din på stadiet etter vellykket shim-verifisering, men før du laster operativsystemet, kiler inn i tillitskjeden når Secure Boot-modus er aktiv og får full kontroll over den videre oppstartsprosessen, inkludert laste inn et annet OS, endre operativsystemets komponenter og omgå låsebeskyttelse.

For å fikse problemer i oppstartslasteren, må distribusjoner lage nye interne digitale signaturer og oppdatere installasjonsprogrammer, oppstartslastere, kjernepakker, fwupd-firmware og shim-lag. Før introduksjonen av SBAT var oppdatering av sertifikatopphevelseslisten (dbx, UEFI Revocation List) en forutsetning for fullstendig blokkering av sårbarheten, siden en angriper, uavhengig av hvilket operativsystem som brukes, kunne bruke oppstartbare medier med en gammel sårbar versjon av GRUB2, sertifisert av en digital signatur, for å kompromittere UEFI Secure Boot .

I stedet for å tilbakekalle en signatur, lar SBAT deg blokkere bruken for individuelle komponentversjonsnumre uten å måtte tilbakekalle nøklene for sikker oppstart. Blokkering av sårbarheter via SBAT krever ikke bruk av en UEFI-sertifikatopphevelsesliste (dbx), men utføres på nivået for å erstatte den interne nøkkelen for å generere signaturer og oppdatere GRUB2, shim og andre oppstartsartefakter levert av distribusjoner. For øyeblikket er SBAT-støtte allerede lagt til i de fleste populære Linux-distribusjoner.

Identifiserte sårbarheter:

  • CVE-2021-3696, CVE-2021-3695 er heap-baserte bufferoverløp ved behandling av spesialdesignede PNG-bilder, som teoretisk kan brukes til å kjøre angriperkode og omgå UEFI Secure Boot. Det bemerkes at problemet er vanskelig å utnytte, siden å lage en fungerende utnyttelse krever å ta hensyn til et stort antall faktorer og tilgjengeligheten av informasjon om minneoppsettet.
  • CVE-2021-3697 - En bufferunderflyt i JPEG-bildebehandlingskoden. Å utnytte problemet krever kunnskap om minneoppsettet og er på omtrent samme kompleksitetsnivå som PNG-problemet (CVSS 7.5).
  • CVE-2022-28733 - Et heltallsoverløp i grub_net_recv_ip4_packets()-funksjonen gjør at rsm->total_len-parameteren kan påvirkes ved å sende en spesiallaget IP-pakke. Problemet er merket som det farligste av sårbarhetene som presenteres (CVSS 8.1). Hvis den utnyttes vellykket, lar sårbarheten data skrives utenfor buffergrensen ved å tildele en bevisst mindre minnestørrelse.
  • CVE-2022-28734 - Enkeltbyte bufferoverflyt ved behandling av strippede HTTP-hoder. Et problem kan føre til korrupsjon av GRUB2-metadata (skriving av en nullbyte like etter slutten av bufferen) ved parsing av spesiallagde HTTP-forespørsler.
  • CVE-2022-28735 Et problem i shim_lock-verifikatoren tillater ikke-kjernefillasting. Sårbarheten kan brukes til å laste usignerte kjernemoduler eller ubekreftet kode i UEFI Secure Boot-modus.
  • CVE-2022-28736 En allerede frigjort minnetilgang i grub_cmd_chainloader()-funksjonen via en omkjøring av chainloader-kommandoen, brukt til å starte opp operativsystemer som ikke støttes av GRUB2. Utnyttelse kan føre til kjøring av angriperkode hvis angriperen er i stand til å bestemme minneallokering i GRUB2
  • CVE-2022-28737 - Et bufferoverløp i shim-laget oppstår i handle_image()-funksjonen når du laster inn og utfører lagde EFI-bilder.

Kilde: opennet.ru

Legg til en kommentar