Технологии, деньги и рынки — первыми

Критическая уязвимость EDK II в PXE-загрузке: CVE-2026-97631 с оценкой 9,5 и без исправления в релизах

В EDK II, открытом коде, на котором строят UEFI-прошивки большинство производителей, найдена критическая 16-летняя уязвимость CVE-2026-97631 с оценкой 9,5 из 10. Она позволяет выполнить код до загрузки операционной системы, но только пока машина грузится по сети.

Главное в цифрах

  • Оценка CVE-2026-97631 у TianoCore: 9,5 из 10
  • Уязвимый код EDK II присутствует с ноября 2010 года
  • Затронуты версии EDK II до edk2-stable202608 включительно
  • Размер фиксированной области копирования: 504 байта
  • Исправление слито в основную ветку 15 октября, в стабильных релизах на 28 октября его нет

Уязвимость находится в PXE-драйвере EDK II, который отвечает за загрузку с сети: во время такой загрузки машина берёт стартовый образ не с локального диска, а из сети. Драйвер принимает ICMP-сообщения об ошибках и копирует каждое из них в фиксированную область памяти размером 504 байта. Проверки размера при копировании написаны неверно как для IPv4, так и для IPv6, поэтому сообщение длиннее 504 байт переполняет буфер и перезаписывает соседнюю память данными, которые выбрал атакующий.

Для срабатывания достаточно одного специально составленного сообщения на адрес машины, пока она загружается по сети. Пароль и предварительный доступ не нужны. В простом случае результат, сбой, загрузка зависает. Выполнить код значительно сложнее: по данным advisory, атакующему нужно знать точную сборку прошивки и подготовить «фальшивое событие». Код, запущенный таким образом, выполняется до Secure Boot и других проверок при загрузке, однако после перезагрузки сам по себе не сохраняется. Одного запуска при этом может хватить, чтобы установить код, который будет стартовать при каждой загрузке.

Какие продукты затронуты

Уязвимый код есть в EDK II до версии edk2-stable202608 включительно, последней стабильной версии от 21 августа. Этот код лежит в основе прошивок большинства производителей, включая независимых разработчиков BIOS AMI, Insyde и Phoenix, а также форк Microsoft Project Mu. Ошибка присутствует в коде с ноября 2010 года, по данным The Hacker News, которое изучило историю проекта.

PXE включён по умолчанию в стандартной сборке EDK II. Затронуты в первую очередь серверы и оборудование дата-центров, которые загружаются по сети. Домашние и офисные пользователи, загружающиеся только с локального диска, под угрозу не попадают. Сколько выпущенных продуктов содержат уязвимый код, неизвестно. Intel сообщила Ars Technica, что её коммерческие продукты на поддержке не известны как затронутые, хотя производители плат и систем могут добавить эту функцию самостоятельно. Arm заявила, что уязвимость «не применима напрямую» к её линейке. Red Hat относит пакет edk2 в RHEL 8, 9 и 10 к затронутым и нерешённым, SUSE и Debian отмечают свои пакеты так же. AMD, Phoenix Technologies, AMI, Microsoft и Amazon на вопросы не ответили.

Исправление и что делать сейчас

Исправление уже слито в исходный код EDK II и попало в основную ветку разработки 15 октября. Оно обрезает слишком длинное сообщение на 504 байтах вместо переполнения буфера. На 28 октября в стабильных релизах EDK II исправления не было: самый новый тег edk2-stable202608 ему предшествует, а advisory до сих пор указывает статус «Not patched currently». Project Mu уже включил исправление в свои release-ветки и выпустил теговые сборки 26 октября.

Даже при открытом исправлении администратору сервера нечего установить, пока производитель прошивки не выпустит обновление BIOS или UEFI. Джесси Майкл из Eclypsium сказал Ars Technica, что это исправимо простой правкой кода, без отзыва сертификатов или ключей, как в случае с BootHole и BlackLotus. Обходного пути advisory не приводит. Тем, кому не нужен PXE, его можно отключить. Ars также советует следить за сетевым трафиком и логами при загрузке.

Уязвимость нашли Алекс Матросов из Anthropic и Дэн Холмс-Митра из Google. Координированное раскрытие планировалось на январь 2027 года, но 28 сентября pull request в EDK II, подписанный инженером AMI, публично описал ошибку по номеру CVE и содержал исправление. После этого TianoCore опубликовала advisory 22 октября. По данным CISA, на 27 октября уязвимости нет в каталоге активно эксплуатируемых, и исследователи не сообщали о её использовании в атаках.

По оценке Ars Technica, сама по себе уязвимость не даёт пути в сеть. Реалистичный атакующий, инсайдер или тот, кто уже получил низкий уровень доступа к локальной сети. HD Moore из Dragos отметил, что такая ошибка может использоваться против машины с TPM, чтобы обойти шифрование диска.

Источник: thehackernews.com