Două vulnerabilități în GRUB2 care permit ocolirea protecției UEFI Secure Boot

S-au dezvăluit informații despre două vulnerabilități în bootloaderul GRUB2, care pot duce la executarea de cod atunci când se folosesc fonturi special concepute și la procesarea anumitor secvențe Unicode. Vulnerabilitățile pot fi utilizate pentru a ocoli mecanismul de validare a încărcării UEFI Secure Boot.

Vulnerabilitățile identificate:

  • CVE-2022-2601 — o supraîncărcare a buffer-ului în funcția grub_font_construct_glyph() la procesarea fonturilor special concepute în format pf2, provocată de calcularea incorectă a parametrului max_glyph_size și alocarea unei zone de memorie vizibil mai mici decât cea necesară pentru stocarea glyph-urilor.
  • CVE-2022-3775 — scrierea în afara zonei de memorie alocate la redarea anumitor secvențe Unicode cu un font special conceput. Problema există în codul de procesare a fonturilor și este cauzată de lipsa verificărilor adecvate între lățimea și înălțimea glyph-ului și dimensiunea bitmap-ului existent. Atacatorul poate concepe o intrare astfel încât să cauzeze scrierea datelor pe limita buffer-ului alocat. Se observă că, deși exploatarea vulnerabilității este complexă, atingerea unei execuții de cod nu este exclusă.

O corectare a fost publicată sub formă de patch. Stadiul soluționării vulnerabilităților în distribuții poate fi evaluat pe aceste pagini: Ubuntu, SUSE, RHEL, Fedora, Debian. Pentru a rezolva problemele din GRUB2 nu este suficient să actualizați pur și simplu pachetul, va fi necesar să creați și noi semnături digitale interne și să actualizați instalatoarele, bootloader-ele, pachetele de kernel, firmware-urile fwupd și stratul shim.

În majoritatea distribuțiilor Linux, pentru bootarea verificată în modul UEFI Secure Boot se folosește un mic strat shim, semnat digital de Microsoft. Acest strat verifică GRUB2 cu propriul certificat, permițând distribuitorilor să nu semneze fiecare actualizare de kernel și GRUB în Microsoft. Vulnerabilitățile din GRUB2 permit executarea codului propriu în etapa de după verificarea reușită a shim, dar înainte de încărcarea sistemului de operare, intervenind în lanțul de încredere în modul Secure Boot activ și obținând control total asupra procesului de bootare ulterioară, inclusiv pentru bootarea unei alte OS, modificarea componentelor sistemului de operare și ocolirea protecției Lockdown.

Pentru blocarea vulnerabilității fără revocarea semnăturii digitale, distribuțiile pot utiliza mecanismul SBAT (UEFI Secure Boot Advanced Targeting), pentru care suportul este implementat în GRUB2, shim și fwupd în cele mai populare distribuții Linux. SBAT a fost dezvoltat în colaborare cu Microsoft și prevede adăugarea de metadate suplimentare în fișierele executabile ale componentelor UEFI, care includ informații despre producător, produs, componentă și versiune. Aceste metadate sunt semnate digital și pot fi incluse separat în listele de componente permise sau interzise pentru UEFI Secure Boot.

SBAT permite blocarea utilizării semnăturii digitale pentru anumite versiuni ale componentelor fără a fi necesară revocarea cheilor pentru Secure Boot. Blocarea vulnerabilităților prin SBAT nu necesită utilizarea listei de certificate revocate UEFI (dbx), și se realizează la nivelul înlocuirii cheii interne pentru formarea semnăturilor și actualizarea GRUB2, shim și altor artefacte de boot livrate de distribuții. Până la implementarea SBAT, actualizarea listei de certificate revocate (dbx, Lista de Revocare UEFI) era o condiție obligatorie pentru blocarea completă a vulnerabilității, deoarece atacatorul, indiferent de sistemul de operare folosit, putea compromite UEFI Secure Boot utilizând un mediu de boot cu o versiune veche vulnerabilă a GRUB2, certificat cu o semnătură digitală.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster