Критична вразливість у завантажувачі GRUB2, що дозволяє обійти UEFI Secure Boot

У завантажувачі GRUB2 виявлено 8 уразливостей. Найбільш небезпечна проблема (CVE-2020-10713), якій присвоєно кодове ім'я BootHole, дає можливість обійти механізм UEFI Secure Boot та домогтися встановлення неверифікованого шкідливого ПЗ. Особливістю цієї вразливості і те, що її усунення мало оновити GRUB2, оскільки атакуючий може використовувати завантажувальний носій зі старої вразливою версією, завіреної цифровим підписом. Атакуючий може скомпрометувати процес верифікації не тільки Linux, а й інших операційних систем, включаючи Windows.

Проблема вирішується лише оновленням у системі списку відкликаних сертифікатів (dbx, UEFI Revocation List), але в цьому випадку буде втрачено можливість використання старих інсталяційних носіїв з Linux. Деякі виробники обладнання вже включили у свої прошивки оновлений список відкликаних сертифікатів, на таких системах у режимі UEFI Secure Boot можна буде завантажити лише оновлені збирання дистрибутивів Linux.

Для усунення вразливості в дистрибутивах також потрібно оновити інсталятори, завантажувачі, пакети з ядром, fwupd-прошивки та shim-прошарку, згенерувавши для них нові цифрові підписи. Користувачі повинні будуть оновити інсталяційні образи та інші завантажувальні носії, а також завантажити список відкликаних сертифікатів (dbx) у прошивку UEFI. До оновлення dbx в UEFI система залишається вразливою незалежно від встановлення оновлень ОС.

уразливість викликана переповнення буфера, який може бути експлуатований для виконання довільного коду в процесі завантаження.
Вразливість проявляється при розборі вмісту конфігураційного файлу grub.cfg, який зазвичай розміщується в розділі ESP (EFI System Partition) і може бути відредагований атакуючим, що мають права адміністратора, без порушення цілісності підписаних виконуваних файлів shim і GRUB2. Через помилки у коді парсера конфігурації, обробник фатальних помилок аналізу YY_FATAL_ERROR лише виводив попередження, але не завершував роботу програми. Небезпека вразливості знижується необхідністю наявності привілейованого доступу до системи, проте проблема може виявитися затребуваною для впровадження прихованих rootkit-ів за наявності фізичного доступу до обладнання (при можливості завантаження зі свого носія).

У більшості Linux-дистрибутивів для верифікованого завантаження використовується невелика прошарок shim, засвідчена цифровим підписом Microsoft. Цей прошарок верифікує GRUB2 власним сертифікатом, що дозволяє розробникам дистрибутивів не завіряти кожне оновлення ядра та GRUB у Microsoft. Вразливість дозволяє через зміну вмісту grub.cfg домогтися виконання свого коду на етапі після успішної верифікації shim, але до завантаження операційної системи, увійшовши в ланцюжок довіри при активному режимі Secure Boot і отримавши повний контроль за подальшим процесом завантаження, у тому числі для завантаження іншої ОС , модифікації компонентів операційної системи та обходу захисту Lockdown.

Критична вразливість у завантажувачі GRUB2, що дозволяє обійти UEFI Secure Boot

Інші вразливості у GRUB2:

  • CVE-2020-14308 - Переповнення буфера через відсутність перевірки розміру виділеної області пам'яті grub_malloc;
  • CVE-2020-14309 — цілечисленне переповнення grub_squash_read_symlink, яке може призвести до запису даних за межами виділеного буфера;
  • CVE-2020-14310 — цілісне переповнення вread_section_from_string, яке може призвести до запису даних за межами виділеного буфера;
  • CVE-2020-14311 — цілечисленне переповнення grub_ext2_read_link, яке може призвести до запису даних за межами виділеного буфера;
  • CVE-2020-15705 — дозволяє завантажувати непідписані ядра під час прямого завантаження в режимі Secure Boot без прошарку shim;
  • CVE-2020-15706 — звернення до звільненої області пам'яті (use-after-free) при перевизначенні функції під час виконання;
  • CVE-2020-15707 - Цілочисленне переповнення в обробнику розміру initrd.

Оновлення пакетів з виправленнями випущено для Debian, Ubuntu, RHEL и SUSE. Для GRUB2 запропонований набір патчі.

Джерело: opennet.ru

Додати коментар або відгук