Критична уразливість у UEFI EDK2 дозволяє виконання коду під час PXE-завантаження
У відкритому коді TianoCore EDK2 виявлено CVE-2026-97631 із оцінкою 9,5/10, що дає змогу запускати код ще до старту ОС. Розкриття прискорилося через передчасну публікацію виправлення.
Критичну уразливість у прошивці UEFI на базі TianoCore EDK2, яку використовує більшість виробників серверного обладнання та дата-центрів, оприлюднили раніше запланованого. Помилка CVE-2026-97631 (9,5/10) відкриває шлях до виконання коду на ранньому етапі завантаження, ще до спрацьовування Secure Boot.
Що сталося
Уразливість виявили Alex Matrosov (Anthropic) та Dan Holmes (Google). Координоване розкриття планували на січень, однак AMI минулого місяця опублікувала pull request (запит на злиття) з деталями та виправленням. Після цього учасники проєкту TianoCore опублікували публічне повідомлення (advisory). За наявності коду виправлення зловмисникам легше відтворити експлойт, а оновлення прошивок UEFI на мільйонах пристроїв є складним і тривалим процесом.
Як працює атака
Йдеться про 16‑річне переповнення буфера у драйвері PXE‑Base Code (NetworkPkg/UefiPxeBcDxe), який забезпечує мережеве завантаження в середовищі PXE. Під час прослуховування ICMP‑помилок драйвер копіює повідомлення у фіксоване поле на 504 байти без коректної перевірки меж — як в обробнику IPv4 (PxeBcIcmpErrorDpcHandle), так і IPv6 (PxeBcIcmp6ErrorDpcHandle). Якщо повідомлення довше за 504 байти, воно перезаписує сусідні дані, дозволяючи вставити керований код.
Атаку можна здійснити через простий одноадресний пакет (unicast) на IP‑адресу цілі під час послідовності PXE‑завантаження. Наслідки варіюються від відмови в обслуговуванні (зависання під час старту) до виконання коду з привілеями ring 0 в середовищі UEFI шляхом підміни, так званої «counterfeit event» (фальшива подія), якщо відоме складання прошивки цілі.
Ланцюг довіри під загрозою
Код запускається до активування Secure Boot і може відкрити шлях для встановлення інших, уже стійких до перезавантаження, компонентів. За даними Ars Technica, фінальні корисні навантаження за CVE-2026-97631 самі по собі не є персистентними, але створюють вікно можливостей для закріплення в ранньому бут‑процесі та доступу до чутливих компонентів на кшталт TPM.
«Зловмисник, що прагне зламати сусідній кінцевий вузол або сервер, може перехопити потік виконання в момент, коли процес завантаження ще має доступ до чутливих компонентів, як‑от TPM. Це могло б зламати шифрування диска в разі короткочасного мережевого доступу (ще легше — у разі крадіжки пристрою)», — сказав HD Moore, творець Metasploit і директор з досліджень Dragos.
Кого зачіпає і що далі
EDK2 є базовим кодом для більшості постачальників UEFI (AMI, Insyde, Phoenix), а також використовується в Microsoft Project Mu. Через масштаб екосистеми патчі доведеться розгортати на величезній кількості пристроїв, що ускладнює оперативне закриття ризику. Повідомлення з’явилося через шість днів після іншого зірваного розкриття — критичної уразливості виконання коду в PHP.