В выпущенном во вторник компанией Microsoft обновлении к ОС Windows выявлена проблема, приводящая к невозможности загрузки Linux-систем, установленных на том же компьютере параллельно с Windows. Причиной проблем является исправление, нацеленное на устранение старой уязвимости (CVE-2022-2601) в загрузчике GRUB, исправленной в 2022 году. Компания Microsoft пока не опубликовала заявления, связанного с возникшим сбоем и никак его не прокомментировала.
В примечании к изменению указывалось, что исправление, обеспечивающее установку новой политики SBAT (UEFI Secure Boot Advanced Targeting), будет применено для систем, на которых используется только Windows и не затронет конфигурации с двойной загрузкой (изменение блокировало возможность использования загрузочных образов со старым GRUB для обхода Secure Boot на системах, на которых установлен только Windows). Также было указано, что изменение может привести к проблемам с загрузкой iso-образов старых систем, поставляемых с уязвимой версией GRUB. На деле, проблемы проявились и у пользователей систем с двойной загрузкой, использующих новые дистрибутивы Linux, такие как Ubuntu 24.04 и Debian 12.6, в которых уязвимость в GRUB давно исправлена.
Проблема проявляется остановкой процесса загрузки с выводом сообщения “Verifying shim SBAT data failed: Security Policy Violation. Something has gone seriously wrong: SBAT self-check failed: Security Policy Violation”. В качестве способа восстановления работы рекомендуется удалить установленные в UEFI данные SBAT, для чего можно отключить Secure Boot в прошивке, загрузить свежий Linux-дистрибутив с поддержкой UEFI Secure Boot, например, Ubuntu, выполнить в консоли команду “mokutil –set-sbat-policy delete”, после чего перезагрузить Linux-дистрибутив для установки корректной политики SBAT. После этого можно вернуть режим Secure Boot в прошивке.
Механизм SBAT был разработан компанией Red Hat совместно с Microsoft для блокирования уязвимостей в загрузчике GRUB и прослойке shim без отзыва цифровой подписи. SBAT подразумевает добавление в исполняемые файлы компонентов UEFI дополнительных метаданных, которые включают информацию о производителе, продукте, компоненте и версии. Указанные метаданные заверяются цифровой подписью и могут отдельно включаться в списки разрешённых или запрещённых компонентов для UEFI Secure Boot. SBAT позволяет блокировать использование цифровой подписи для отдельных номеров версий компонентов без необходимости отзыва ключей для Secure Boot.
Блокирование уязвимостей через SBAT не требует использования списка отозванных сертификатов UEFI (dbx), а производится на уровне замены внутреннего ключа для формирования подписей и обновления GRUB2, shim и других поставляемых дистрибутивами загрузочных артефактов. До внедрения SBAT, обновление списка отозванных сертификатов (dbx, UEFI Revocation List) было обязательным условием полного блокирования уязвимости, так как атакующий, независимо от используемой операционной системы, мог для компрометации UEFI Secure Boot использовать загрузочный носитель со старой уязвимой версией GRUB2, заверенной цифровой подписью.