Në ngarkuesin GRUB2 janë eliminuar 7 dobësi që lejojnë kalimin e mekanizmit UEFI Secure Boot dhe fillimin e kodit të pa verifikuar, si për shembull, implementimin e malware-it që funksionon në nivelin e ngarkuesit ose bërthamës. Gjithashtu, vërehet një dobësi në shimin, e cila gjithashtu lejon kalimin e UEFI Secure Boot. Grupi i dobësive mori emrin Boothole 3, në të njëjtën mënyrë si problemet e ngjashme që janë identifikuar më parë në ngarkuesin.
Për të zgjidhur problemet në GRUB2 dhe shim, shpërndarjet do të kenë mundësinë të përdorin mekanizmin SBAT (UEFI Secure Boot Advanced Targeting), mbështetje për të cilin është implementuar për GRUB2, shim dhe fwupd. SBAT është zhvilluar në bashkëpunim me Microsoft dhe parashikon shtimin e metadatat në skedarët ekzekutivë të komponenteve UEFI, të cilat përfshijnë informacion mbi prodhuesin, produktin, komponentin dhe versionin. Metadatat e përmendura nënshkruhen me një nënshkrim digjital dhe mund të përfshihen veçmas në listat e komponenteve të lejuara ose të ndaluara për UEFI Secure Boot.
Në shumicën e shpërndarjeve Linux, për ngarkimin e verifikuar në mënyrën UEFI Secure Boot përdoret një shtresë e vogël shim, e cila është nënshkruar me një nënshkrim digjital nga Microsoft. Kjo shtresë verifikon GRUB2 me certifikatën e saj, duke lejuar zhvilluesit e shpërndarjeve të mos nënshkruajnë çdo përditësim të bërthamës dhe GRUB në Microsoft. Dobësitë në GRUB2 lejojnë ekzekutimin e kodit të tyre në një fazë pas verifikimit të suksesshëm të shim, por para se të ngarkohet sistemi operativ, duke ndërhyrë në zinxhirin e besimit në një mënyrë aktive të Secure Boot dhe duke marrë kontrollin e plotë mbi procesin e mëtejshëm të ngarkimit, përfshirë ngarkimin e një OS tjetër, modifikimin e komponentëve të sistemit operativ dhe kalimin e mbrojtjes Lockdown.
Për të zgjidhur problemet në ngarkues, shpërndarjet do të duhet të formulojnë nënshkrime të reja digjitale të brendshme dhe të përditësojnë instaluesit, ngarkuesit, paketat e bërthamës, firmware-t fwupd dhe shtresën shim. Para se të implementohej SBAT, përditësimi i listës së çertifikatave të revokuara (dbx, Lista e Revokimit UEFI) ishte një kusht i detyrueshëm për bllokimin e plotë të dobësisë, pasi sulmuesi, pavarësisht nga sistemi operativ të përdorur, mund të përdorte një media ngarkimi me një version të vjetër të dobët të GRUB2, të nënshkruar me një nënshkrim digjital.
Në vend të revokimit të nënshkrimeve, SBAT lejon bllokimin e përdorimit të saj për numra specifik versionesh të komponentëve pa pasur nevojë të revokohen çelësat për Secure Boot. Bllokimi i dobësive përmes SBAT nuk kërkon përdorimin e listës së çertifikatave të revokuara të UEFI (dbx), por kryhet në nivelin e zëvendësimit të çelësit të brendshëm për formimin e nënshkrimeve dhe përditësimin e GRUB2, shim dhe artefakteve të tjera ngarkuese që ofrohen nga shpërndarjet. Aktualisht, mbështetja për SBAT është shtuar tashmë në shumicën e shpërndarjeve të njohura Linux.
Vulnerabilitetet e identifikuara:
- CVE-2021-3696, CVE-2021-3695 - mbushja e buffers në heap gjatë përpunimit të imazheve PNG të formuara posaçërisht, që teoretikisht mund të përdoret për të organizuar ekzekutimin e kodit të sulmuesit dhe kalimin e UEFI Secure Boot. Vërehet se problemi është i vështirë për t'u shfrytëzuar, pasi krijimi i një eksploiti funksional kërkon njohjen e një numri të madh faktorësh dhe informacionin mbi shpërndarjen e memories.
- CVE-2021-3697 - mbushja në fund të buffers (buffer underflow) në kodin përpunues të imazheve JPEG. Shfrytëzimi i problemit kërkon marrjen e informacionit mbi shpërndarjen e memories dhe ndodhet në një nivel të ngjashëm vështirësie si problemi me PNG (CVSS 7.5).
- CVE-2022-28733 - mbushja e numrave të plotë në funksionin grub_net_recv_ip4_packets(), e cila lejon të ndikojë në parametrin rsm->total_len duke dërguar një paketë IP të formuar posaçërisht. Problemi është përshkruar si më i rrezikshmi nga dobësitë e paraqitura (CVSS 8.1). Nëse shfrytëzohet me sukses, dobësia lejon shkruarjen e të dhënave përtej kufirit të buffers duke alokuar një madhësi memorjeje të dukshme më të vogël.
- CVE-2022-28734 - një mbushje e një byte buffers gjatë përpunimit të headerave HTTP të ndara. Problemi mund të çojë në dëmtimin e metadave të GRUB2 (shkruarja e një byte zero menjëherë pas fundit të bufferit) gjatë analizës së kërkesave HTTP të formuara posaçërisht.
- CVE-2022-28735 - një problem në verifikuesin shim_lock, i cili lejon ngarkimin e skedarëve që nuk janë në lidhje me bërthamën. Dobësia mund të përdoret për të ngarkuar në mënyrën UEFI Secure Boot module bërthamash që nuk janë nënshkruar me nënshkrim digjital ose kod të pa verifikuar.
- CVE-2022-28736 â aksesim nĂ« njĂ« zonĂ« tĂ« liruar memorie nĂ« funksionin grub_cmd_chainloader() pĂ«rmes ripĂ«rpjekjes pĂ«r tĂ« ekzekutuar komandĂ«n chainloader, e cila pĂ«rdoret pĂ«r ngarkimin e sistemeve operative qĂ« nuk mbĂ«shteten nĂ« GRUB2. ShfrytĂ«zimi mund tĂ« çojĂ« nĂ« ekzekutimin e kodit nga sulmuesi, nĂ«se ai/ajo arrin tĂ« zbulojĂ« detajet e shpĂ«rndarjes sĂ« memories nĂ« GRUB2.
- CVE-2022-28737 â mbushja e buffers nĂ« shtresĂ«n shim, e cila ndodh nĂ« funksionin handle_image() gjatĂ« ngarkimit dhe ekzekutimit tĂ« imazheve EFI tĂ« dizajnuara posaçërisht.
Burimi: opennet.ru
