Quarkslab发现“PixieFail”漏洞,开源UEFI代码中的严重缺陷需要立即修补。这些漏洞统称为PixieFAIL,是在对NetworkPkg进行粗略检查时在EDK II的网络堆栈中发现的,并且可以在网络启动过程中被利用。



Quarkslab bug猎人在EDK II(UEFI规范事实上的开源参考实现)中发现了九个严重漏洞,这些漏洞可能会导致设备启动前的远程代码执行(RCE)攻击。


这些缺陷于2023年8月发现,导致IPv4和IPv6层发生DNS和DHCP中毒攻击、信息泄露、拒绝服务以及数据插入攻击。


这些漏洞统称为PixieFAIL,是在对NetworkPkg进行粗略检查时在EDK II的网络堆栈中发现的,并且可以在网络启动过程中被利用。


网络启动是企业计算机/服务器上的常见功能,用于在启动时从网络加载操作系统映像。这在数据中心和高性能计算环境中很流行。鉴于服务器场和集群通常有数百或数千个计算节点,它通过从一组中央服务器下载和运行操作系统来简化管理。


供您参考,预启动执行环境(PXE)、netboot或Pixie boot指定了用于网络计算机启动的标准化客户端-服务器解决方案。它由Intel于1998年推出,后来被纳入UEFI规范。随着2010年UEFI 2.2版的发布,基于IPv6的PXE成为该规范的一部分。PXE代码包含在主板上的UEFI固件中或NIC固件只读存储器中。



EDK II是由Tianocore开发和维护的UEFI开源实现,Tianocore是一个利用该项目进行自己的UEFI实现的开发人员社区。它包含NetworkPkg(一个TCP/IP堆栈),可在初始PXE阶段启用网络功能,从而允许远程配置和启动联网计算机。


根据Quarkslab的博客文章,所有九个问题都是在TianoCore EFI开发套件II(EDK II)中发现的,并影响AMI、Intel、Insyde和Phoenix Technologies的UEFI固件。威胁行为者可以利用它们进行远程代码执行、拒绝服务、DNS缓存中毒和敏感信息泄露。漏洞详情如下:


CVE-2023-45229(CVSS评级6.5)和CVE-2023-45230(CVSS评级8.3)是DHCPv6中的漏洞,会导致DHCPv6客户端中的整数下溢和缓冲区溢出。


CVE-2023-45231(CVSS评级6.5)和CVE-2023-45232(CVSS评级7.5)是DHCPv6 Advertise消息中的漏洞,在解析未知或PadN选项时导致越界读取和无限循环。


CVE-2023-45233(CVSS评级7.5)和CVE-2023-45234(CVSS评级8.3)是DHCPv6 Advertise消息中的漏洞,在解析目标选项标头中的PadN选项时导致无限循环,另一个影响DNS的处理服务器和服务器ID选项。


CVE-2023-45235和CVE-2023-45236是影响DHCPv6代理通告消息的漏洞,CVSS分数分别为8.3和5.8,导致缓冲区溢出和可预测的TCP初始序列号。第九个缺陷是CVE-2023-45237,CVSS评分为 5.3,与伪随机数生成器的弱点有关。


EDK II设备中的漏洞列表非常广泛,其中最严重的是鼓励任意代码执行的缓冲区溢出漏洞,可能允许攻击者进行初始访问和横向移动。


Quarkslab联系了受影响的软件供应商来解决该问题。他们花了半年多的时间共同开发了一个补丁,没有泄露任何信息。2024年1月16日,一次性修复PixieFAIL的补丁随固件更新一起发布。


该公司已发布前七个漏洞的概念验证代码,使防御者能够检测感染尝试。CERT协调中心已将Insyde、AMI、Intel和Phoenix Technologies确定为受影响的公司,并发布了部署修复程序的指南。