Janë zbuluar informacionet për dy vulnerabilitete në ngarkuesin GRUB2, të cilat mund të çojnë në ekzekutimin e kodit kur përdoren fonte të dizajnuara posaçërisht dhe procesimi i sekuencave të caktuara Unicode. Vulnerabilitetet mund të përdoren për të anashkaluar mekanizmin e verifikimit të ngarkesës UEFI Secure Boot.
Vulnerabilitetet e identifikuara:
- CVE-2022-2601 — mbushje buferi në funksionin grub_font_construct_glyph() gjatë procesimit të fonteve të dizajnuara posaçërisht në formatin pf2, që ndodh për shkak të një llogaritjeje të gabuar të parametrave max_glyph_size dhe alokimit të një zone memory që është e qartë më e vogël se e nevojshmja për të vendosur glifet.
- CVE-2022-3775 — shkrim jashtë zonës së alokuar të memories gjatë vizatimit të disa sekuencave Unicode me një font të dizajnuar posaçërisht. Problemi është i pranishëm në kodin e procesimit të fonteve dhe shkaktohet nga mungesa e kontrollit të duhur të përputhjes së gjerësisë dhe lartësisë së glifit me madhësinë e bit-map-it ekzistues. Një sulmues mund të përzgjedhë hyrje në një mënyrë që të shkaktojë shkrim të tail-it të të dhënave jashtë kufijve të buffer-it të alokuar. Vërehet se, përveçse kompleksiteti i shfrytëzimit të vulnerabilitetit është i madh, arritja e ekzekutimit të kodit nuk përjashtohet.
Një rregullim është publikuar në formën e një patch-i. Statusi i korrigjimit të vulnerabiliteteve në shpërndarjet mund të vlerësohet në këto faqe: Ubuntu, SUSE, RHEL, Fedora, Debian. Për të adresuar problemet në GRUB2 nuk mjafton vetëm të përditësohet paketa, do të nevojitet gjithashtu të krijohen nënshkrime të reja digjitale dhe të përditësohen instaluesit, ngarkuesit, paketat e bërthamës, firmware të fwupd, dhe shim-layer.
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 nënshkruar digjitalisht 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 te Microsoft. Vulnerabilitetet në GRUB2 lejojnë ekzekutimin e kodit të tij pas suksesit të verifikimit të shim, por para ngarkimit të sistemit operativ, duke ndërhyrë në zinxhirin e besimit gjatë aktivizimit të Secure Boot dhe duke fituar kontroll të plotë mbi procesin e ngarkimit, duke përfshirë ngarkimin e një sistemi operativ tjetër, modifikimin e komponentëve të sistemit operativ dhe kalimin e mbrojtjes Lockdown.
Për të bllokuar vulnerabilitetin pa anulluar nënshkrimin digjital, shpërndarjet mund të përdorin mekanizmin SBAT (UEFI Secure Boot Advanced Targeting), mbështetje e të cilit është realizuar për GRUB2, shim dhe fwupd në shumicën e shpërndarjeve të njohura Linux. SBAT është zhvilluar në bashkëpunim me Microsoft dhe parashikon shtimin e metadatas në skedarët ekzekutivë të komponenteve UEFI, që përfshin informacion mbi prodhuesin, produktin, komponentin dhe versionin. Këto metadata nënshkruhen me një nënshkrim digjital dhe mund të përfshihen veçmas në listat e miratuara ose të ndaluara për UEFI Secure Boot.
SBAT lejon të bllokojë përdorimin e nënshkrimit digjital për numrat e veçantë të versioneve të komponentëve pa pasur nevojë për të tërhequr çelësat për Secure Boot. Bllokimi i dobësive përmes SBAT nuk kërkon përdorimin e listës së tërhequr të certifikatave UEFI (dbx), por realizohet 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 tjera të ngarkesës që ofrohen nga distribucione. Para zbatimit të SBAT, përditësimi i listës së tërhequr të certifikatave (dbx, Lista e Revokuar e UEFI) ishte një kusht i domosdoshëm për bllokimin e plotë të dobësisë, pasi sulmuesi, pavarësisht nga sistemi operativ i përdorur, mund të përdorte një medium ngarkese me një version të vjetër të GRUB2, të verifikuar me një nënshkrim digjital, për të komprometuar UEFI Secure Boot.
Burimi: opennet.ru
