A GRUB2 bootloader driver handling the NTFS file system has a vulnerability (CVE-2023-4692) that allows arbitrary code execution at the bootloader level when accessing a specially crafted file system image. This vulnerability can be used to bypass the UEFI Secure Boot verification mechanism.
The vulnerability is caused by an error in the code parsing the NTFS attribute ‘$ATTRIBUTE_LIST’ (grub-core/fs/ntfs.c), which can be exploited to write user-controlled information to memory outside of the allocated buffer. When processing a specially crafted NTFS image, the overflow leads to overwriting parts of GRUB memory and, under certain conditions, may corrupt the UEFI firmware memory space, potentially enabling arbitrary code execution at the bootloader or firmware level.
Additionally, another vulnerability (CVE-2023-4693) has been found in the NTFS driver of GRUB2, allowing reading the contents of arbitrary memory regions when parsing the ‘$DATA’ attribute in a specially crafted NTFS image. Among other things, this vulnerability allows extracting confidential data cached in memory or determining EFI variable values.
Currently, the issues have only been addressed via a patch. The status of vulnerability fixes in distributions can be assessed on these pages: Debian, Ubuntu, SUSE, RHEL, Fedora. Simply updating the GRUB2 package is not enough; it’s also necessary to generate new internal digital signatures and update installers, bootloaders, kernel packages, fwupd firmware, and the shim layer.
A legtöbb Linux disztribúcióban az UEFI Secure Boot ellenőrzött indításához egy kis shim réteg használatos, amelyet a Microsoft digitális aláírása hitelesít. Ez a réteg a saját tanúsítványával ellenőrzi a GRUB2-t, lehetővé téve a disztribúciók fejlesztői számára, hogy ne kelljen minden kernel- és GRUB-frissítést Microsoft-hitelesíteni. A GRUB2 sebezhetőségei lehetővé teszik, hogy kódot hajtsanak végre a shim sikeres ellenőrzése után, de az operációs rendszer betöltése előtt, behatolva a bizalom láncába aktív Secure Boot üzemmódban, és teljes ellenőrzést megszerezve a további betöltési folyamatról, például más operációs rendszer betöltéséről, az operációs rendszer összetevőinek módosításáról és a Lockdown védelem megkerüléséről.
A sebezhetőség visszavonása nélküli blokkolásához a disztribúciók használhatják az SBAT mechanizmust (UEFI Secure Boot Advanced Targeting), amelynek támogatása a GRUB2-re, shim-re és fwupd-re a legtöbb népszerű Linux disztribúcióban megvalósult. Az SBAT-ot a Microsoft együttműködésével fejlesztették ki, és plusz metaadaták hozzáadását jelenti az UEFI komponensek végrehajtható fájljaihoz, amelyek tartalmazzák a gyártóról, termékről, komponensről és verzióról szóló információkat. Ezek a metaadatok digitális aláírással hitelesítettek, és külön-külön is szerepelhetnek az UEFI Secure Boot engedélyezett vagy tiltható komponenseinek listáján.
A SBAT lehetővé teszi a digitális aláírás használatának blokkolását a komponensek egyes verziói esetében anélkül, hogy szükség lenne a Secure Boot kulcsainak visszavonására. A SBAT-on keresztüli sebezhetőségek blokkolása nem igényli a visszavont UEFI tanúsítványok listájának (dbx) használatát, hanem a belső kulcs cseréjének szintjén történik az aláírások kialakításához és a GRUB2, shim és más szállítóktól érkező boot artefaktumok frissítéséhez. A SBAT bevezetése előtt a visszavont tanúsítványok listájának (dbx, UEFI Visszavonási Lista) frissítése kötelező feltétele volt a sebezhetőségek teljes blokkolásának, mivel a támadó, függetlenül a használt operációs rendszertől, képes volt a bootloader használatával kompromittálni az UEFI Secure Boot-ot.
Forrás: opennet.ru
