16-летняя ошибка EDK II угрожает серверам с сетевой загрузкой

В открытом проекте EDK II обнаружена критическая уязвимость CVE-2026-97631 с оценкой 9,5 из 10, которая затрагивает серверы при загрузке по PXE. Ошибка присутствует в коде с ноября 2010 года и сохраняется в последней стабильной версии edk2-stable202608 от 21 августа 2026 года. При успешной эксплуатации атакующий может выполнить код в прошивке до запуска Secure Boot.
Переполнение буфера в PXE
EDK II служит базовым кодом для множества реализаций UEFI. Его используют независимые производители BIOS AMI, Insyde и Phoenix, а также Microsoft в защищённой ветке Project Mu.
Проблема находится в драйвере PXE, который применяется для загрузки машины по сети вместо локального диска. Во время такой загрузки драйвер принимает ICMP-сообщения об ошибках и копирует их в область памяти фиксированного размера — 504 байта.
Проверка длины данных в обработчиках IPv4 и IPv6 реализована неверно. Если сообщение превышает 504 байта, данные выходят за границы буфера и могут перезаписать расположенную рядом память значениями, выбранными атакующим.
Для запуска ошибки достаточно отправить специально подготовленное сообщение на адрес системы в короткий период PXE-загрузки. Пароль и предварительный доступ к машине не нужны, однако атакующий должен находиться в доступном для этой системы сегменте сети.
Последствия и ограничения атаки
Наиболее простой результат — отказ в обслуживании: загрузка зависает, а сервер не запускается. Выполнение произвольного кода существенно сложнее: согласно предупреждению TianoCore, эксплойт должен учитывать точную сборку прошивки и сформировать поддельное событие, которое передаст управление коду атакующего.
Если выполнение кода удаётся, оно происходит в UEFI до проверки Secure Boot и других механизмов загрузки. Само по себе такое выполнение сохраняется только до перезагрузки, но его может быть достаточно для установки компонентов, стартующих при последующих включениях.
Red Hat указывает затронутыми пакеты edk2 в Red Hat Enterprise Linux 8, 9 и 10; исправлений для них пока нет. SUSE и Debian также отметили соответствующие пакеты как уязвимые. Intel сообщила, что среди её коммерческих продуктов, находящихся на поддержке, затронутых систем не выявлено, а Arm заявила, что проблема напрямую не относится к её продуктовому портфелю.
Исправление ещё не дошло до систем
Разработчики TianoCore приняли исправление в основную ветку EDK II 15 октября. Новый код ограничивает входящее сообщение 504 байтами, предотвращая переполнение. Однако ни один стабильный релиз EDK II пока не включает этот патч, а в бюллетене проект по-прежнему указывает статус отсутствия исправленной версии.
Microsoft уже перенесла изменение в релизные ветки Project Mu и выпустила тегированные сборки 26 октября. Для конечного оператора этого недостаточно: обновление должно быть включено производителем в новую версию BIOS или UEFI и поставлено для конкретного сервера.
TianoCore связывает обнаружение CVE-2026-97631 с Алексом Матросовым из Anthropic и Дэном Холмсом-Митрой из Google. Публичный pull request с номером CVE и исправлением появился 28 сентября, поэтому раскрытие перенесли с января 2027 года на октябрь. По состоянию на 27 октября признаков эксплуатации не было, а CISA не включила уязвимость в каталог Known Exploited Vulnerabilities.
Что проверить операторам
Уязвимость не относится к компьютерам, которые загружаются только с локального накопителя. В зоне риска находятся прежде всего серверы и оборудование дата-центров с включённой PXE-загрузкой, которая активна по умолчанию в стандартной сборке EDK II.
Организациям стоит определить, используется ли PXE на конкретных системах, и запросить у поставщиков статус обновлений прошивки. Если сетевая загрузка не требуется, её отключение уменьшает поверхность атаки. До выхода обновлений также целесообразно отслеживать сетевой трафик и журналы событий в момент загрузки серверов.

