Krytyczna luka w loaderze GRUB2, umożliwiająca ominięcie UEFI Secure Boot

W bootloaderze GRUB2 ujawniono 8 podatności. Najbardziej niebezpieczna problem (CVE-2020-10713), przydzielona nazwą kodową BootHole, pozwala na obejście mechanizmu UEFI Secure Boot i na zainstalowanie niezweryfikowanego złośliwego oprogramowania. Cechą tej podatności jest to, że nie wystarczy zaktualizować GRUB2, ponieważ atakujący może użyć nośnika rozruchowego ze starą, podatną wersją, podpisaną cyfrowo. Atakujący może skompromitować proces weryfikacji nie tylko systemu Linux, ale także innych systemów operacyjnych, w tym Windows.

Problem można rozwiązać jedynie aktualizując system listę odwołanych certyfikatów (dbx, UEFI Revocation List), ale w takim przypadku utracona zostanie możliwość korzystania ze starych nośników instalacyjnych z Linuksem. Niektórzy producenci sprzętu już włączyli do swoich firmware'ów zaktualizowaną listę odwołanych certyfikatów, na takich systemach w trybie UEFI Secure Boot będzie można załadować tylko zaktualizowane wersje dystrybucji Linuksa.

Aby usunąć tę podatność w dystrybucjach, konieczne będzie również zaktualizowanie instalatorów, bootloaderów, pakietów jądra, firmware fwupd oraz warstwy shim, generując dla nich nowe podpisy cyfrowe. Użytkownicy będą musieli zaktualizować obrazy instalacyjne i inne nośniki rozruchowe, a także załadować listę odwołanych certyfikatów (dbx) do firmware'u UEFI. Dopóki dbx w UEFI nie zostanie zaktualizowany, system pozostaje podatny, niezależnie od instalacji aktualizacji w OS.

Luka jest spowodowany przepełnieniem bufora, które może być wykorzystywane do wykonywania dowolnego kodu podczas rozruchu.
Podatność występuje podczas analizy zawartości pliku konfiguracyjnego grub.cfg, który zazwyczaj znajduje się w sekcji ESP (EFI System Partition) i może być edytowany przez atakującego, który ma uprawnienia administratora, bez naruszania integralności podpisanych plików wykonywalnych shim i GRUB2. Z powodu błędu w kodzie parsera konfiguracji, obsługa krytycznych błędów analizy YY_FATAL_ERROR jedynie wyświetlała ostrzeżenie, ale nie kończyła pracy programu. Niebezpieczeństwo podatności jest zmniejszone ze względu na konieczność posiadania uprawnień do systemu, jednak problem ten może być wykorzystany do wprowadzenia ukrytych rootkitów, gdy istnieje fizyczny dostęp do sprzętu (przy możliwości rozruchu z własnego nośnika).

W większości dystrybucji Linuxa do weryfikacji rozruchu stosuje się małą warstwę shim, zatwierdzoną podpisem cyfrowym Microsoft. Ta warstwa weryfikuje GRUB2 własnym certyfikatem, co pozwala deweloperom dystrybucji nie zatwierdzać każdej aktualizacji jądra i GRUB w Microsoft. Luka umożliwia poprzez zmianę zawartości grub.cfg wykonanie własnego kodu na etapie po pomyślnej weryfikacji shim, ale przed załadowaniem systemu operacyjnego, włamać się w łańcuch zaufania przy aktywnym trybie Secure Boot i uzyskać pełną kontrolę nad dalszym procesem rozruchu, w tym również w celu załadowania innego systemu operacyjnego, modyfikacji komponentów systemu operacyjnego i obejścia zabezpieczeń. Lockdown.

Krytyczna luka w loaderze GRUB2, umożliwiająca ominięcie UEFI Secure Boot

Inne luki w GRUB2:

  • CVE-2020-14308 — przepełnienie bufora z powodu braku weryfikacji rozmiaru przydzielonego obszaru pamięci w grub_malloc;
  • CVE-2020-14309 — przepełnienie całkowite w grub_squash_read_symlink, które może prowadzić do zapisu danych poza przydzielonym buforem;
  • CVE-2020-14310 — przepełnienie całkowite w read_section_from_string, które może prowadzić do zapisu danych poza przydzielonym buforem;
  • CVE-2020-14311 — przepełnienie całkowite w grub_ext2_read_link, które może prowadzić do zapisu danych poza przydzielonym buforem;
  • CVE-2020-15705 — pozwala na ładowanie niesigned jądra podczas bezpośredniego rozruchu w trybie Secure Boot bez warstwy shim;
  • CVE-2020-15706 — odniesienie do już zwolnionego obszaru pamięci (use-after-free) podczas nadpisywania funkcji w trakcie wykonywania;
  • CVE-2020-15707 — przepełnienie całkowite w obsłudze rozmiaru initrd.

Wydane zostały aktualizacje pakietów z poprawkami dla Debian, Ubuntu, RHEL i SUSE. Dla GRUB2 zaproponowano zestaw łat.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster