Dues vulnerabilitats a GRUB2 que us permeten evitar la protecció d'arrencada segura UEFI

Раскрыты сведения о двух уязвимостях в загрузчике GRUB2, которые могут привести к выполнению кода при использовании специально оформленных шрифтов и обработке определённых Unicode-последовательностей. Уязвимости могут использоваться для обхода механизма верифицированной загрузки UEFI Secure Boot.

Vulnerabilitats identificades:

  • CVE-2022-2601 — переполнение буфера в функции grub_font_construct_glyph() при обработке специально оформленных шрифтов в формате pf2, возникающее из-за неверного расчёта параметра max_glyph_size и выделения области памяти, заведомо меньшей, чем необходимо для размещения глифов.
  • CVE-2022-3775 — запись за пределы выделенной области памяти при отрисовке некоторых последовательностей Unicode специально оформленным шрифтом. Проблема присутствует в коде обработки шрифтов и вызвана отсутствием должных проверок соответствия ширины и высоты глифа размеру имеющейся битовой карты. Атакующий может подобрать ввод таким образом, чтобы вызвать запись хвоста данных на пределами выделенного буфера. Отмечается, что несмотря на сложность эксплуатации уязвимости, доведение проблемы до выполнения кода не исключается.

Исправление опубликовано в виде патча. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Ubuntu, SUSE, RHEL, Fedora, Debian. Для устранения проблем в GRUB2 недостаточно просто обновить пакет, потребуется также сформировать новые внутренние цифровые подписи и обновлять инсталляторы, загрузчики, пакеты с ядром, fwupd-прошивки и shim-прослойку.

La majoria de distribucions de Linux utilitzen una petita capa de compensació signada digitalment per Microsoft per a l'arrencada verificada en mode d'arrencada segura UEFI. Aquesta capa verifica GRUB2 amb el seu propi certificat, que permet als desenvolupadors de distribució no tenir tots els nuclis i les actualitzacions de GRUB certificats per Microsoft. Les vulnerabilitats de GRUB2 us permeten assolir l'execució del vostre codi en l'etapa després de la verificació correcta del shim, però abans de carregar el sistema operatiu, encaixar a la cadena de confiança quan el mode d'arrencada segur està actiu i obtenir el control total sobre el procés d'arrencada posterior, inclòs carregar un altre sistema operatiu, modificar el sistema de components del sistema operatiu i evitar la protecció de bloqueig.

Per bloquejar la vulnerabilitat sense revocar la signatura digital, les distribucions poden utilitzar el mecanisme SBAT (UEFI Secure Boot Advanced Targeting), que és compatible amb GRUB2, shim i fwupd a les distribucions Linux més populars. SBAT es va desenvolupar conjuntament amb Microsoft i implica afegir metadades addicionals als fitxers executables dels components UEFI, que inclou informació sobre el fabricant, producte, component i versió. Les metadades especificades estan certificades amb una signatura digital i es poden incloure per separat a les llistes de components permesos o prohibits per a l'arrencada segura UEFI.

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

Font: opennet.ru

Afegeix comentari