Kaksi GRUB2:n haavoittuvuutta, joiden avulla voit ohittaa UEFI Secure Boot -suojauksen

Tietoa on paljastettu kahdesta GRUB2-käynnistyslataimen haavoittuvuudesta, jotka voivat johtaa koodin suorittamiseen käytettäessä erityisesti suunniteltuja fontteja ja käsiteltäessä tiettyjä Unicode-sekvenssejä. Haavoittuvuuksia voidaan käyttää ohittamaan UEFI Secure Boot -varmennettu käynnistysmekanismi.

Tunnistetut haavoittuvuudet:

  • CVE-2022-2601 - Puskurin ylivuoto funktiossa grub_font_construct_glyph() käsiteltäessä erityisesti suunniteltuja kirjasimia pf2-muodossa, mikä johtuu parametrin max_glyph_size virheellisestä laskennasta ja muistialueen allokoinnista, joka on selvästi pienempi kuin on tarpeen mukauttaa kuviot.
  • CVE-2022-3775 Rajat ylittävä kirjoitus tapahtuu, kun jotkin Unicode-sekvenssit hahmonnetaan erityistyylisellä kirjasimella. Ongelma on kirjasinten käsittelykoodissa, ja se johtuu asianmukaisten tarkistusten puutteesta sen varmistamiseksi, että kuvion leveys ja korkeus vastaavat käytettävissä olevan bittikartan kokoa. Hyökkääjä voi muokata syötteen siten, että datan loppuosa kirjoitetaan varatun puskurin ulkopuolelle. On huomattava, että huolimatta haavoittuvuuden hyödyntämisen monimutkaisuudesta, ongelman tuominen koodin suorittamiseen ei ole poissuljettua.

Korjaus on julkaistu korjaustiedostona. Jakelujen haavoittuvuuksien poistamisen tila voidaan arvioida näillä sivuilla: Ubuntu, SUSE, RHEL, Fedora, Debian. GRUB2:n ongelmien korjaamiseen ei riitä, että päivität paketin, vaan sinun on myös luotava uudet sisäiset digitaaliset allekirjoitukset ja päivitettävä asennusohjelmat, käynnistyslataimet, ydinpaketit, fwupd-laiteohjelmisto ja välityskerros.

Useimmat Linux-jakelut varmennetussa käynnistyksessä UEFI Secure Boot -tilassa käyttävät pientä välilevyä, jonka Microsoft on allekirjoittanut digitaalisesti. Tämä kerros vahvistaa GRUB2:n omalla varmenteella, jonka ansiosta jakelun kehittäjät eivät voi varmentaa jokaista ydintä ja GRUB-päivitystä Microsoftille. GRUB2:n haavoittuvuuksien avulla voit suorittaa koodisi siinä vaiheessa, kun välilevy on varmistettu onnistuneesti, mutta ennen käyttöjärjestelmän lataamista kiilautui luottamusketjuun Secure Boot -tilan ollessa aktiivinen ja sai täyden hallinnan myöhempää käynnistysprosessia kohtaan. mukaan lukien toisen käyttöjärjestelmän käynnistäminen, käyttöjärjestelmän komponenttien järjestelmän muokkaaminen ja ohituslukitussuojaus.

Haavoittuvuuden estämiseksi digitaalista allekirjoitusta kumoamatta jakelut voivat käyttää SBAT (UEFI Secure Boot Advanced Targeting) -mekanismia, jota tuetaan GRUB2:lle, shim:lle ja fwupd:lle suosituimmissa Linux-jakeluissa. SBAT on kehitetty yhteistyössä Microsoftin kanssa, ja se sisältää metatietojen lisäämisen UEFI-komponenttien suoritettaviin tiedostoihin, jotka sisältävät tietoja valmistajasta, tuotteesta, komponentista ja versiosta. Määritetyt metatiedot on sertifioitu digitaalisella allekirjoituksella, ja ne voidaan sisällyttää erikseen UEFI Secure Bootin sallittujen tai kiellettyjen komponenttien luetteloihin.

SBAT:n avulla voit estää yksittäisten komponenttien versionumeroiden digitaalisten allekirjoitusten käytön ilman, että sinun tarvitsee peruuttaa suojatun käynnistyksen avaimia. Haavoittuvuuksien estäminen SBAT:n kautta ei vaadi UEFI-varmenteen kumoamisluettelon (dbx) käyttöä, mutta se suoritetaan sisäisen avaimen korvaamisen tasolla allekirjoitusten luomiseksi ja GRUB2:n, välilevyn ja muiden jakelujen toimittamien käynnistysartefaktien päivittämiseksi. Ennen SBAT:n käyttöönottoa varmenteen peruutuslistan (dbx, UEFI Revocation List) päivittäminen oli edellytys haavoittuvuuden täydelliselle estämiselle, koska hyökkääjä saattoi käytetystä käyttöjärjestelmästä riippumatta käyttää käynnistysmediaa vanhan haavoittuvan GRUB2-version kanssa, sertifioitu digitaalisella allekirjoituksella UEFI Secure Bootin vaarantamiseksi.

Lähde: opennet.ru

Lisää kommentti