The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

6 уязвимостей в загрузчике GRUB2, позволяющих обойти UEFI Secure Boot

21.11.2025 12:28

Опубликован набор патчей с устранением 6 уязвимостей в загрузчике GRUB2, большинство из которых приводит к обращению к памяти после её освобождения (use-after-free). Потенциально выявленные проблемы могут использоваться для обхода механизма верифицированной загрузки UEFI Secure Boot. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE, RHEL, Arch и Fedora. Для устранения проблем в GRUB2 недостаточно просто обновить пакет, требуется также сформировать новые внутренние цифровые подписи и обновлять инсталляторы, загрузчики, пакеты с ядром, fwupd-прошивки и shim-прослойку.

Выявленные уязвимости:

  • CVE-2025-61661 - запись за пределы выделенного буфера в функции grub_usb_get_string(), которая может быть эксплуатирована при обработке строк в кодировке UTF-8 и UTF-16, передаваемых при подключении USB-устройств. Проблема вызвана тем, что буфер выделялся на основании размера строки, указанного в первом сообщении от USB-устройства, в размер при выполнении преобразования кодировки вычислялся на основе последующих операций чтения c USB-устройства. Соответственно, для атаки можно использовать модифицированное USB-устройство, изначально возвращающее заниженное значение размера.
  • CVE-2025-61663, CVE-2025-61664, CVE-2025-54770, CVE-2025-61662 - отсутствие очистки обработчиков команд "normal", "normal_exit", "net_set_vlan" и "gettext" при выгрузке модулей "normal", "net" и "gettext", создающее условия для обращения к памяти после её освобождения (use-after-free) в случае выполнения отмеченных команд после выгрузки соответствующих модулей. Похожие уязвимости также найдены для команд "functional_test" и "all_functional_test", но им не присвоены CVE-идентификаторы, так как данные команды входят в состав тестовой библиотеки и не должны включаться в рабочие сборки.
  • CVE-2025-54771 - ошибка при подсчёте ссылок на структуры "fs" в функции grub_file_close(), приводящая к обращению к памяти после её освобождения (use-after-free).

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

Для блокирования уязвимости без отзыва цифровой подписи дистрибутивы могут использовать механизм SBAT (UEFI Secure Boot Advanced Targeting), поддержка которого реализована для GRUB2, shim и fwupd в большинстве популярных дистрибутивов Linux. SBAT разработан совместно с Microsoft и подразумевает добавление в исполняемые файлы компонентов UEFI дополнительных метаданных, которые включают информацию о производителе, продукте, компоненте и версии. Указанные метаданные заверяются цифровой подписью и могут отдельно включаться в списки разрешённых или запрещённых компонентов для UEFI Secure Boot.

SBAT позволяет блокировать использование цифровой подписи для отдельных номеров версий компонентов без необходимости отзыва ключей для Secure Boot. Блокирование уязвимостей через SBAT не требует использования списка отозванных сертификатов UEFI (dbx), а производится на уровне замены внутреннего ключа для формирования подписей и обновления GRUB2, shim и других поставляемых дистрибутивами загрузочных артефактов. До внедрения SBAT, обновление списка отозванных сертификатов (dbx, UEFI Revocation List) было обязательным условием полного блокирования уязвимости, так как атакующий, независимо от используемой операционной системы, мог для компрометации UEFI Secure Boot использовать загрузочный носитель со старой уязвимой версией GRUB2, заверенной цифровой подписью.

  1. Главная ссылка к новости (https://lists.gnu.org/archive/...)
  2. OpenNews: В загрузчике GRUB2 выявлена 21 уязвимость
  3. OpenNews: Разработчики GRUB2 рассматривают возможность использования языка Rust
  4. OpenNews: Уязвимость в патчах Red Hat к загрузчику GRUB2, позволяющая обойти проверку пароля
  5. OpenNews: Релиз загрузочного менеджера GNU GRUB 2.12
  6. OpenNews: Уязвимость в NTFS-драйвере из состава GRUB2, позволяющая выполнить код и обойти UEFI Secure Boot
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64298-grub
Ключевые слова: grub, uefi
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Танкист (?), 12:49, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Классика, что ещё тут писать
     
     
  • 2.10, Аноним (10), 13:10, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, классика бекдоринга, кто-то еще сомневается?

    пс: капча не сомневается 66646 :)

     
     
  • 3.14, Аноним (14), 13:15, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ой ну что ты это же теории заговора. Анб не существует, а Эдвард сноуден это городской сумасшедший из Подмосковья.
     
  • 3.15, Аноним (15), 13:15, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ага, классика бекдоринга, кто-то еще сомневается?

    Ты прсто никогда не видел качество кода GRUB2. Это просто эталоннейший г*код, а вы про бекдоры, лол.

     

  • 1.3, Аноним (3), 12:57, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Грубо сделано, на детали не обратили внимания
     
     
  • 2.13, Аноним (14), 13:14, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно обрабатывать грубые кромки детали напильником.  
      
     

  • 1.4, Аноним (4), 12:59, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Снова фичи груба  закрывают
     
  • 1.5, Аноним (5), 13:01, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда уже закопают это uefi?! И туда же положат этот наркоманский grub.
     
  • 1.6, Аноним (6), 13:02, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Почему дистры не перейдут на systemd-boot или uki?
     
     
  • 2.9, НяшМяш (ok), 13:08, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В нормальных это или выбирается при установке (CachyOS), или легко меняется после. Я даже дебиан на подкроватном сервере на systemd-boot перевёл.
     

  • 1.7, Mister blue (?), 13:02, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему растолюбители не обратят свой взор на загрузчики и bios. Системный софт и переписывать не так много
     
     
  • 2.8, НяшМяш (ok), 13:07, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они есть, просто всё экспериментальное.

    https://github.com/rust-osdev/bootloader
    https://github.com/OpenDevicePartnership/patina

     
  • 2.12, Аноним (14), 13:12, 21/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что они не умеют программировать. Только визжат по форумам.  
          
     

  • 1.11, Аноним (14), 13:12, 21/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какая "неожиданная" "случайность" ещё и в таком критически важном месте.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру