Переполнение буфера в UEFI-драйвере PXE у EDK2 открывает путь к удалённому выполнению кода

vulnerability

Сетевой загрузчик из состава EDK2, открытой эталонной реализации UEFI (интерфейса между прошивкой и операционной системой), содержит уязвимость CVE-2026-97631. Ошибка в драйвере UEFI PXE Base Code позволяет удалённому злоумышленнику выполнить произвольный код ещё до запуска операционной системы. Базовый рейтинг по шкале CVSS версии 3.1 составляет 9,8 из 10, по версии 4.0 - 9,5. Готовый эксплойт лежит в открытом доступе, производитель проблему подтвердил и выпустил исправления.

CVE-2026-97631 в сетевом стеке загрузки UEFI

Проблема сосредоточена в функции CoreSignalEvent(). Драйвер копирует поступающие извне данные в буфер памяти, не сверяя их размер с ёмкостью самого буфера. Классификация относит ошибку сразу к трём категориям: копирование без проверки размера, неверное вычисление размера и запись за границами буфера. Лишние байты ложатся поверх служебных структур памяти, и атакующий получает рычаг для подмены хода выполнения кода. В бюллетене Банка данных угроз безопасности информации (BDU) способ эксплуатации описан как манипулирование структурами данных. Ни учётная запись, ни действия пользователя не требуются: вектор атаки сетевой, сложность низкая, привилегии не нужны.

Что даёт атакующему загрузка по сети

PXE Base Code отвечает за сетевую загрузку компьютера. Механизм востребован там, где машин много и они однотипны: в дата-центрах, на тонких клиентах, в учебных классах, на сборочных линиях. Устройство получает от сервера адрес и образ загрузчика, после чего передаёт управление пришедшему коду.

Уязвимость срабатывает в момент, когда прошивка разбирает сетевые пакеты. Злоумышленник, оказавшийся в том же сегменте сети, отправляет специально сформированные данные, и чужой код исполняется в среде прошивки. Средства защиты операционной системы к этому моменту ещё не работают, поэтому антивирус и контроль целостности ядра в процесс не вмешиваются. Дальше машина загружается с подконтрольного сервера и работает под чужим управлением, причём следы такой загрузки привычными средствами мониторинга не видны.

Сетевой вектор особенно неприятен для инфраструктуры с плоской адресацией, где сегмент загрузки не отделён от рабочих станций. Один скомпрометированный узел в такой сети превращается в плацдарм для атаки на весь парк устройств. Показатели уязвимости соответствуют критическому уровню опасности по классификации Банка данных угроз, запись опубликована под номером BDU:2026-17872.

Обновления и обходные меры

Правки внесены в репозиторий microsoft/mu_basecore (запросы 1989 и 1990), уведомление опубликовано в рекомендациях по безопасности проекта Tianocore под идентификатором GHSA-99cj-7hg9-mp4m. Сама EDK2 служит основой для прошивок множества производителей, поэтому исправление доходит до конкретного устройства только вместе с обновлением прошивки от вендора. Владельцам материнских плат и готовых систем имеет смысл проверить сайт производителя своей модели и установить свежий выпуск прошивки.

Тем, кто не может обновиться сразу, доступны ограничивающие меры. Сетевую загрузку отключают в настройках прошивки на всех машинах, где она не нужна повседневно. Сегмент, в котором работает загрузочный сервер, изолируют от остальной сети и закрывают фильтрацией по аппаратным адресам. Доступ к самому серверу сетевой загрузки ограничивают кругом администраторов, а журналы его обращений полезно просматривать на предмет посторонних клиентов.

Задержка между правкой в исходном коде и обновлением прошивки на конкретной плате нередко измеряется месяцами: производители долго переносят изменения, а часть моделей уже снята с поддержки и не получит исправление вовсе. Загрузка по сети при этом остаётся включённой по умолчанию у многих корпоративных систем. Именно этот разрыв и делает уязвимость в PXE Base Code практически значимой, несмотря на наличие патча. Код, выполняющийся до операционной системы, обходит почти весь привычный набор защитных средств. Пока прошивки обновляются, снижать риск приходится на уровне сети: изоляция загрузочного сегмента и отказ от PXE там, где он не нужен, дают больше, чем любые средства защиты внутри уже загруженной системы.

Ссылки

Комментарии: 0