Luka w łatach Red Hata w bootloaderze GRUB2, która pozwala ominąć weryfikację hasła

Ujawniono informację o luce (CVE-2023-4001) w łatkach dla bootloadera GRUB2 przygotowanych przez firmę Red Hat. Luka umożliwia wielu systemom z UEFI ominięcie sprawdzania hasła ustawionego w GRUB2 w celu ograniczenia dostępu do menu startowego lub wiersza poleceń programu ładującego. Przyczyną luki jest zmiana dodana przez firmę Red Hat do pakietu GRUB2 dostarczanego z RHEL i Fedorą Linux. Problem nie pojawia się w głównym projekcie GRUB2 i dotyczy tylko dystrybucji, które zastosowały dodatkowe łatki Red Hat.

Problem jest spowodowany błędem w logice wykorzystania identyfikatora UUID przez moduł ładujący do znalezienia urządzenia z plikiem konfiguracyjnym (na przykład „/boot/efi/EFI/fedora/grub.cfg”) zawierającym hasło haszysz. Aby ominąć uwierzytelnianie, użytkownik mający fizyczny dostęp do komputera może podłączyć dysk zewnętrzny, taki jak pamięć USB Flash, ustawiając dla niego identyfikator UUID zgodny z identyfikatorem partycji rozruchowej /boot zaatakowanego systemu.

Wiele systemów UEFI najpierw przetwarza dyski zewnętrzne i umieszcza je na liście wykrytych urządzeń przed dyskami stacjonarnymi, dzięki czemu przygotowana przez atakującego partycja /boot będzie miała wyższy priorytet przetwarzania i w związku z tym GRUB2 spróbuje załadować plik konfiguracyjny z tej partycji. Podczas wyszukiwania partycji za pomocą polecenia „search” w GRUB2 ustalane jest tylko pierwsze dopasowanie UUID, po czym wyszukiwanie zostaje zatrzymane. Jeśli główny plik konfiguracyjny nie zostanie znaleziony na określonej partycji, GRUB2 wyświetli wiersz poleceń, który pozwoli ci mieć pełną kontrolę nad resztą procesu rozruchu.

Narzędzie „lsblk” może zostać użyte do określenia UUID partycji przez lokalnego nieuprzywilejowanego użytkownika, ale użytkownik zewnętrzny, który nie ma dostępu do systemu, ale może obserwować proces rozruchu, może w niektórych dystrybucjach określić UUID na podstawie diagnostyki komunikaty wyświetlane podczas uruchamiania. Firma Red Hat rozwiązała tę lukę, dodając nowy argument do polecenia „search”, który umożliwia powiązanie operacji skanowania UUID tylko z urządzeniami blokującymi używanymi do uruchamiania menedżera rozruchu (tj. partycja /boot musi znajdować się tylko na tym samym dysk jako partycja systemowa EFI).

Źródło: opennet.ru

Dodaj komentarz