Information über die Schwachstelle (CVE-2023-4001) in den Patches für den GRUB2-Bootloader, die von Red Hat bereitgestellt wurden, wurde bekannt gegeben. Die Schwachstelle ermöglicht es auf vielen Systemen mit UEFI, die Passwortüberprüfung, die in GRUB2 zum Schutz des Zugangs zum Bootmenü oder zur Befehlszeile eingestellt wurde, zu umgehen. Die Schwachstelle wurde durch eine Änderung verursacht, die Red Hat in das Paket mit GRUB2 integriert hat, das in RHEL und Fedora Linux ausgeliefert wird. Das Problem tritt im Hauptprojekt GRUB2 nicht auf und betrifft nur Distributionen, die zusätzliche Patches von Red Hat angewendet haben.
Das Problem resultiert aus einem Fehler in der Logik der Verwendung von UUIDs zur Suche des Bootloaders nach dem Gerät mit der Konfigurationsdatei (zum Beispiel „/boot/efi/EFI/fedora/grub.cfg“), die den Passwort-Hash enthält. Um die Authentifizierung zu umgehen, kann ein Benutzer mit physischem Zugriff auf den Computer ein externes Laufwerk wie einen USB-Stick anschließen und dessen UUID so einstellen, dass sie mit der Identifikationsnummer der Bootpartition /boot des angegriffenen Systems übereinstimmt.
Viele UEFI-Systeme behandeln zunächst externe Laufwerke und listen diese in der Reihenfolge der erkannten Geräte vor den stationären Laufwerken. Daher hat die Partition /boot, die vom Angreifer vorbereitet wurde, eine höhere Priorität bei der Verarbeitung, und GRUB2 wird versuchen, die Konfigurationsdatei von dieser Partition zu starten. Bei der Suche nach der Partition mit dem Befehl „search“ in GRUB2 wird nur die erste gefundene UUID bestimmt, wonach die Suche beendet wird. Wenn die Hauptkonfigurationsdatei in einer bestimmten Partition nicht gefunden wird, zeigt GRUB2 eine Eingabeaufforderung an, die eine vollständige Kontrolle über den weiteren Bootprozess ermöglicht.
Ein lokaler nicht privilegierter Benutzer kann das Tool „lsblk“ verwenden, um die UUID der Partition zu bestimmen, jedoch kann ein externer Benutzer ohne Zugang zum System, der den Bootvorgang beobachten kann, in einigen Distributionen die UUID anhand der während des Bootens angezeigten Diagnosenachrichten abrufen. Die Schwachstelle wurde von Red Hat behoben, indem ein neues Argument zu dem Befehl „search“ hinzugefügt wurde, das es ermöglicht, die UUID-Suche nur auf die Blockgeräte zu beschränken, die zum Starten des Bootloaders verwendet werden (d. h. die Partition /boot muss sich auf demselben Laufwerk wie die EFI-Systempartition befinden).
Quelle: opennet.ru
