Două vulnerabilități în GRUB2 care vă permit să ocoliți protecția UEFI Secure Boot

Au fost dezvăluite informații despre două vulnerabilități în bootloader-ul GRUB2, care pot duce la executarea codului atunci când se utilizează fonturi special concepute și se procesează anumite secvențe Unicode. Vulnerabilitățile pot fi utilizate pentru a ocoli mecanismul de pornire verificat UEFI Secure Boot.

Vulnerabilitati identificate:

  • CVE-2022-2601 - O depășire a tamponului în funcția grub_font_construct_glyph() la procesarea fonturilor special concepute în format pf2, care apare din cauza unui calcul incorect al parametrului max_glyph_size și a alocării unei zone de memorie care este evident mai mică decât este necesar pentru găzduiește glifele.
  • CVE-2022-3775 O scriere în afara limitelor are loc la randarea unor secvențe Unicode într-un font cu stil special. Problema este în codul de procesare a fontului și este cauzată de lipsa verificărilor adecvate pentru a se asigura că lățimea și înălțimea glifului se potrivesc cu dimensiunea bitmap-ului disponibil. Un atacator poate crea intrarea în așa fel încât să provoace scrierea cozii datelor în exteriorul bufferului alocat. Se observă că, în ciuda complexității exploatării vulnerabilității, nu este exclusă aducerea problemei la execuția codului.

Remedierea a fost publicată ca patch. Starea eliminării vulnerabilităților din distribuții poate fi evaluată pe aceste pagini: Ubuntu, SUSE, RHEL, Fedora, Debian. Pentru a remedia problemele în GRUB2, nu este suficient să actualizați pachetul; va trebui, de asemenea, să generați noi semnături digitale interne și să actualizați instalatorii, încărcătoarele, pachetele de kernel, firmware-ul fwupd și stratul shim.

Cele mai multe distribuții Linux folosesc un strat mic shim semnat digital de Microsoft pentru pornirea verificată în modul UEFI Secure Boot. Acest strat verifică GRUB2 cu propriul certificat, ceea ce permite dezvoltatorilor de distribuție să nu aibă fiecare kernel și actualizare GRUB certificat de Microsoft. Vulnerabilitățile din GRUB2 vă permit să realizați execuția codului în etapa după verificarea reușită a shim-ului, dar înainte de a încărca sistemul de operare, să vă conectați în lanțul de încredere atunci când modul Secure Boot este activ și să obțineți control deplin asupra procesului de pornire ulterioară, inclusiv încărcarea unui alt sistem de operare, modificarea sistemului de componente ale sistemului de operare și ocolirea protecției Lockdown.

Pentru a bloca vulnerabilitatea fără a revoca semnătura digitală, distribuțiile pot folosi mecanismul SBAT (UEFI Secure Boot Advanced Targeting), care este acceptat pentru GRUB2, shim și fwupd în cele mai populare distribuții Linux. SBAT a fost dezvoltat împreună cu Microsoft și implică adăugarea de metadate suplimentare la fișierele executabile ale componentelor UEFI, care includ informații despre producător, produs, componentă și versiune. Metadatele specificate sunt certificate cu o semnătură digitală și pot fi incluse separat în listele de componente permise sau interzise pentru UEFI Secure Boot.

SBAT vă permite să blocați utilizarea semnăturilor digitale pentru numerele de versiuni ale componentelor individuale fără a fi nevoie să revocați cheile pentru Secure Boot. Blocarea vulnerabilităților prin SBAT nu necesită utilizarea unei liste de revocare a certificatelor UEFI (dbx), dar se realizează la nivelul înlocuirii cheii interne pentru a genera semnături și a actualiza GRUB2, shim și alte artefacte de boot furnizate de distribuții. Înainte de introducerea SBAT, actualizarea listei de revocare a certificatelor (dbx, UEFI Revocation List) era o condiție prealabilă pentru blocarea completă a vulnerabilității, deoarece un atacator, indiferent de sistemul de operare utilizat, putea folosi medii de pornire cu o versiune veche vulnerabilă a GRUB2, certificat printr-o semnătură digitală, pentru a compromite UEFI Secure Boot .

Sursa: opennet.ru

Adauga un comentariu