Недавно вышла новость о том, что в загрузчик GRUB2 которые позволяют обойти механизм безопасной загрузки UEFI и разрешить выполнение непроверенного кода, например, путем внедрения вредоносного ПО, которое работает на уровне загрузчика или ядра.
Кроме того, в слое прокладки есть уязвимость, которая также позволяет обойти UEFI Secure Boot. Группа уязвимостей получила кодовое название Boothole 3, по аналогии с аналогичными проблемами, ранее обнаруженными в загрузчике.
Указанные метаданные имеют цифровую подпись и могут быть включены отдельно в списки разрешенных или запрещенных компонентов для UEFI Secure Boot.
В большинстве дистрибутивов Linux используется небольшой слой исправлений с цифровой подписью Microsoft для проверки загрузки в режиме безопасной загрузки UEFI. Этот уровень проверяет GRUB2 с помощью собственного сертификата, что позволяет разработчикам дистрибутива не сертифицировать каждое ядро и обновление GRUB в Microsoft.
Уязвимости в GRUB2 позволяют выполнять код после проверки успешная прокладка, но перед загрузкой операционной системы войдите в цепочку доверия с активным безопасным режимом загрузки и получите полный контроль над последующим процессом загрузки, включая загрузку другой операционной системы, изменение системных компонентов операционной системы и обход защиты от блокировки.
Вместо отзыва подписи SBAT позволяет заблокировать его использование для номеров версий отдельных компонентов. нет необходимости отзывать ключи для безопасной загрузки. Блокировка уязвимостей с помощью SBAT не требует использования списка отзыва сертификатов UEFI (dbx), но выполняется на уровне замены внутреннего ключа для создания подписей и обновления GRUB2, прокладки и других загрузочных артефактов, предоставляемых дистрибутивом. Поддержка SBAT теперь добавлена в большинство популярных дистрибутивов Linux.
Лас- выявленные уязвимости заключаются в следующем:
- CVE-2021-3696, CVE-2021-3695- Переполнение буфера кучи при обработке специально созданных изображений PNG, которые теоретически могут использоваться для инсценировки выполнения кода атаки и обхода безопасной загрузки UEFI. Отмечается сложность эксплойта проблемы, так как создание работающего эксплойта требует учета большого количества факторов и наличия информации о структуре памяти.
- CVE-2021-3697: переполнение буфера в коде обработки изображений JPEG. Для решения этой проблемы требуется знание структуры памяти, и она примерно того же уровня сложности, что и проблема PNG (CVSS 7.5).
- CVE-2022-28733: целочисленное переполнение в функции grub_net_recv_ip4_packets(), позволяющее влиять на параметр rsm->total_len путем отправки специально созданного IP-пакета. Проблема отмечена как самая опасная из представленных уязвимостей (CVSS 8.1). В случае успешного использования уязвимость позволяет записывать данные за границы буфера, преднамеренно выделяя меньший объем памяти.
- CVE-2022-28734: Однобайтовое переполнение буфера при обработке разделенных заголовков HTTP. Эта проблема может привести к повреждению метаданных GRUB2 (запись нулевого байта сразу после конца буфера) при анализе специально созданных HTTP-запросов.
- CVE-2022-28735: проблема в контролере shim_lock, позволяющем загружать неядерные файлы. Уязвимость может быть использована для загрузки неподписанных модулей ядра или непроверенного кода в режиме безопасной загрузки UEFI.
- CVE-2022-28736: Доступ к области памяти, уже освобожденной в функции grub_cmd_chainloader(), путем повторного выполнения команды chainloader, используемой для загрузки операционных систем, не поддерживаемых GRUB2. Эксплуатация может привести к выполнению кода злоумышленника, если злоумышленник сможет определить детали распределения памяти в GRUB2.
- CVE-2022-28737: Исправлено переполнение буфера слоя в функции handle_image() при загрузке и запуске пользовательских изображений EFI.
Чтобы устранить неполадки GRUB2 и прокладки, дистрибутивы смогут использовать механизм SBAT (Usefi Secure Boot Advanced Targeting), который совместим с GRUB2, shim и fwupd. SBAT был разработан в сотрудничестве с Microsoft и включает добавление дополнительных метаданных в исполняемые файлы компонентов UEFI, включая информацию о производителе, продукте, компоненте и версии.
Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.