Zraniteľnosť (CVE-2-2023) bola identifikovaná v ovládači, ktorý poskytuje prácu so súborovým systémom NTFS v zavádzači GRUB4692, čo umožňuje spustenie jeho kódu na úrovni zavádzača pri prístupe k špeciálne navrhnutému obrazu systému súborov. Túto chybu zabezpečenia možno použiť na obídenie overeného spúšťacieho mechanizmu UEFI Secure Boot.
Zraniteľnosť je spôsobená chybou v kóde analýzy pre atribút $ATTRIBUTE_LIST NTFS (grub-core/fs/ntfs.c), ktorý možno použiť na zapisovanie informácií riadených používateľom do oblasti pamäte mimo pridelenej vyrovnávacej pamäte. Pri spracovaní špeciálne navrhnutého obrazu NTFS vedie pretečenie k prepísaniu časti pamäte GRUB a za určitých podmienok aj k poškodeniu pamäťovej oblasti firmvéru UEFI, čo vám potenciálne umožňuje organizovať vykonávanie vášho kódu na bootloaderi, resp. úroveň firmvéru.
Okrem toho bola v ovládači NTFS od GRUB2 identifikovaná aj ďalšia zraniteľnosť (CVE-2023-4693), ktorá umožňuje čítanie obsahu ľubovoľnej oblasti pamäte pri analýze atribútu „$DATA“ v špeciálne navrhnutom obraze NTFS. Zraniteľnosť vám okrem iného umožňuje získať citlivé údaje uložené v pamäti cache alebo určiť hodnoty premenných EFI.
Problémy boli doteraz vyriešené iba prostredníctvom záplat. Stav opráv zraniteľností v distribúciách je možné posúdiť na týchto stránkach: Debian, Ubuntu, SUSE, RHEL, Fedora. Oprava problémov s GRUB2 si vyžaduje viac než len aktualizáciu balíka; vyžaduje si aj generovanie nových interných digitálnych podpisov a aktualizáciu inštalátorov, bootloaderov, balíkov jadra, firmvéru fwupd a vrstvy shim.
Vo väčšine LinuxDistribúcie pre overené spustenie v režime UEFI Secure Boot používajú malú vrstvu shim, digitálne podpísanú spoločnosťou Microsoft. Táto vrstva overuje GRUB2 vlastným certifikátom, čím sa eliminuje potreba, aby vývojári distribúcií informovali spoločnosť Microsoft o každej aktualizácii jadra a GRUBu. Zraniteľnosti v GRUB2 umožňujú spustenie ľubovoľného kódu po úspešnom overení shim, ale pred spustením operačného systému. To umožňuje útočníkom preniknúť do reťazca dôvery, keď je povolené Secure Boot, a získať úplnú kontrolu nad následným procesom spustenia, napríklad na spustenie iného operačného systému, úpravu komponentov operačného systému alebo obídenie ochrany Lockdown.
Na zablokovanie zraniteľnosti bez zrušenia digitálneho podpisu môžu distribúcie použiť mechanizmus SBAT (UEFI Secure Boot Advanced Targeting), ktorého podpora je implementovaná pre GRUB2, shim a fwupd vo väčšine populárnych distribúcií. LinuxSBAT bol vyvinutý v spolupráci so spoločnosťou Microsoft a zahŕňa pridanie ďalších metadát do spustiteľných súborov komponentov UEFI vrátane informácií o výrobcovi, produkte, komponente a verzii. Tieto metadáta sú digitálne podpísané a možno ich samostatne zahrnúť do zoznamov povolených alebo zakázaných komponentov pre UEFI Secure Boot.
SBAT vám umožňuje blokovať používanie digitálnych podpisov pre jednotlivé čísla verzií komponentov bez toho, aby ste museli odvolávať kľúče pre Secure Boot. Blokovanie zraniteľností cez SBAT si nevyžaduje použitie zoznamu zrušených certifikátov UEFI (dbx), ale vykonáva sa na úrovni nahradenia interného kľúča na generovanie podpisov a aktualizáciu GRUB2, shim a iných bootovacích artefaktov dodávaných distribúciami. Pred zavedením SBAT bola aktualizácia zoznamu zrušených certifikátov (dbx, UEFI Revocation List) nevyhnutnou podmienkou pre úplné zablokovanie zraniteľnosti, pretože útočník, bez ohľadu na použitý operačný systém, mohol použiť bootovanie na kompromitáciu UEFI Secure Boot
Zdroj: opennet.ru
