В UEFI фърмуерите, базирани на отворената платформа TianoCore EDK2, обикновено използвани в сървърни системи, са открити 9 уязвимости, получаващи обобщаващото кодово име PixieFAIL. Уязвимостите са налични в мрежовия стек на фърмуера, използван за организиране на мрежово зареждане (PXE). Най-опасните уязвимости позволяват на неаутентифицирани атакуващи да организират дистанционно изпълнение на собствен код на ниво фърмуер в системи, допускащи PXE зареждане с помощта на IPv6 мрежа.
По-малко опасните проблеми водят до отказ в обслужването (блокиране на зареждането), изтичане на информация, отравяне на DNS кеш и прихващане на TCP сесии. По-голямата част от уязвимостите може да бъде експлоатирана от локалната мрежа, но отделни уязвимости позволяват и атака от външна мрежа. Типичният сценарий за атака включва мониторинг на трафика в локалната мрежа и изпращане на специално оформени пакети при откритие на активност, свързана със зареждането на системата чрез PXE. Наличие на достъп до сървъра загрузки или DHCP сървъра не е необходимо. За демонстрация на техниката на атаката са публикувани прототипи на експлоити.
UEFI фърмуерът, базиран на платформата TianoCore EDK2, се използва в много големи компании, облачни доставчици, центрове за данни и изчислителни клъстери. В частност, уязвимият модул NetworkPkg с реализация на PXE зареждане се използва в фърмуерите, разработвани от компании като ARM, Insyde Software (Insyde H20 UEFI BIOS), American Megatrends (AMI Aptio OpenEdition), Phoenix Technologies (SecureCore), Intel, Dell и Microsoft (Project Mu). Предполагаше се, че уязвимостите засягат и платформата ChromeOS, в репозиторията на която има пакет EDK2, но компанията Google обяви, че този пакет не се използва във фърмуерите за устройства Chromebook и платформата ChromeOS не е засегната от проблема.
Разпознати уязвимости:
- CVE-2023-45230 — препълване на буфер в кода на клиента DHCPv6, експлоатирано чрез предаване на прекалено дълъг идентификатор сървър (опция Server ID).
- CVE-2023-45234 — препълване на буфер при обработка на опция с параметри на DNS сървъра, предавани в съобщение, анонсиращо наличието на DHCPv6 сървър.
- CVE-2023-45235 — препълване на буфер при обработка на опция с идентификатор на сървъра (Server ID) в съобщения с анонси на прокси сървър за DHCPv6.
- CVE-2023-45229 — целочислено препълване чрез долна граница (underflow), проявяващо се при обработка на опции IA_NA/IA_TA в съобщения DHCPv6, анонсиращи DHCP сървър.
- CVE-2023-45231 — изтичане на данни от извън буфера при обработка на съобщения ND Redirect (Neighbor Discovery) с нарязани стойности на опции.
- CVE-2023-45232 — безкрайно зацикляне при анализиране на неизвестни опции в заглавката с параметри за целева дестинация (Destination Options).
- CVE-2023-45233 — безкрайно зацикляне при анализиране на опцията PadN в заглавката на пакета.
- CVE-2023-45236 — използване на предсказуеми начални номера на TCP последователности, позволяващи вмъкване в TCP връзка.
- CVE-2023-45237 — използване на ненадежден генератор на псевдослучайни числа, който генерира предсказуеми стойности.
Информацията за уязвимостите е изпратена в CERT/CC на 3 август 2023 г., а датата на разкриване е насрочена за 2 ноември. Въпреки това, поради необходимостта от координирано издаване на корекции, обхващащи много производители, датата на публикуване беше отложена първоначално на 1 декември, след това преместена на 12 декември и 19 декември 2023 г., но в крайна сметка е разкрита на 16 януари 2024 г. Компанията Microsoft помоли да се отложи оповестяването до май.
Източник: opennet.ru
