11 个旧版微软签名的 Linux UEFI Shim 可让攻击者绕过 Secure Boot

11 个旧版微软签名的 Linux UEFI Shim 可让攻击者绕过 Secure Boot

导语:ESET 研究人员发现 11 个旧版、微软签名的 UEFI shim 引导加载程序,可被攻击者滥用以绕过 Secure Boot 保护,进而在操作系统加载前执行任意代码并部署 UEFI 引导套件。

网络安全研究人员发现了 11 个旧版、由微软签名的统一可扩展固件接口(UEFI)应用程序,这些程序可能被滥用以在使用现代固件标准的大多数系统上绕过 Secure Boot。

ESET 研究员 Martin Smolár 在今日发布的报告中指出:"利用这些易受攻击的应用程序之一,攻击者可以在系统启动期间执行不受信任的代码,从而部署恶意的 UEFI 引导套件或其他恶意软件。"

这些 UEFI shim 引导加载程序会暴露任何信任微软 "Microsoft Corporation UEFI CA 2011" 第三方 UEFI 证书颁发机构(CA)证书的基于 UEFI 的机器,无论安装何种操作系统。该证书用于对打算在 Secure Boot 下运行的第三方引导组件进行签名。该证书已于 2026 年 6 月 27 日到期,并已被 Microsoft UEFI CA 2023 和 Microsoft Option ROM UEFI CA 2023 所取代。

shim 是一个轻量级、开源的 UEFI 引导加载程序,充当计算机主板固件与 Linux 操作系统之间的中介。其主要目的是允许 Linux 发行版在启用 Secure Boot 的情况下启动。值得注意的是,shim 本身使用固件所信任的密钥进行签名(主要是微软签名),因为其证书已预装在基于 UEFI 的设备上。

启动顺序如下:UEFI 固件加载 shim 并对照存储在固件中的微软 CA 验证其签名。然后 shim 使用其自身嵌入的供应商证书来验证第二阶段引导加载程序(大多数情况下为 GRUB 2)。最后,GRUB 2 使用同一供应商证书来验证内核。

这家斯洛伐克网络安全公司表示,这些过时但仍受信任的 shim 可被利用以在系统启动时执行任意代码,使攻击者即使在启用了 Secure Boot 保护的情况下也能部署 UEFI 引导套件,如 Bootkitty、HybridPetya 或 BlackLotus。

开源 shim 项目的 UEFI 引导加载程序(主要来自 0.9 及更早版本)已由微软作为 2026 年 6 月补丁星期二更新的一部分撤销(该撤销源于 2026 年 2 月的负责任披露)。

这种漏洞带来的一个后果是,攻击者可以利用这些易受攻击的 shim 引导加载程序,通过使用自带易受攻击驱动程序(BYOVD)攻击技术在操作系统初始化之前的早期启动阶段运行任意代码,从而绕过较新的安全机制。

Linux 系统还配备了一项称为机器所有者密钥(MOK)白名单的安全功能,允许用户在 UEFI Secure Boot 处于活动状态时授权加载未签名的驱动程序。尽管在 shim 0.9 版本中引入了 MOK 黑名单,作为撤销与易受攻击的 UEFI 二进制文件相关联的旧签名证书并对已修补版本重新签名的方法。

原文配图

在此背景下,攻击者可以将受害者最新的 shim 替换为旧版由微软签名的 UEFI shim,并利用白名单仍然信任旧证书这一事实来绕过 MOK 黑名单强制执行。反过来,这可能允许攻击者的 shim 不受限制地加载易受攻击的二进制文件并获得任意代码执行能力。

不仅如此。该攻击还颠覆了 Secure Boot Advanced Targeting(SBAT)机制,该机制旨在撤销易受攻击的引导组件,而不是维护庞大的、与每个文件相对应的单独加密哈希黑名单。换言之,该机制用于在引导链组件中发现漏洞时更新最低可接受的生成版本。如果尝试启动使用了较旧的易受攻击版本,系统将阻止该启动并抛出错误。

CERT 协调中心(CERT/CC)在上月发布的公告中表示,厂商特定的引导加载程序在上游项目的漏洞被公开披露并修复后,未进行更新以解决这些漏洞。

"结果是,由于这些易受攻击的引导加载程序未通过微软签名的 DBX 撤销列表进行撤销,它们仍然保持签名状态并受到 Secure Boot 系统的信任,"该中心指出,"这造成了一种长期的供应链暴露风险,即过时且易受攻击的引导组件仍可能在已完全修补的系统上执行。"

其结果是,拥有管理员权限或能够修改引导过程的攻击者可以滥用上述易受攻击的 shim 引导加载程序之一,绕过 Secure Boot 保护并在操作系统加载之前执行任意代码,为深度持久化铺平道路,这种持久化可以承受操作系统重启,在某些情况下甚至可以承受操作系统重新安装。

由于所有这一切都发生在操作系统和安全产品初始化之前,因此通过引导加载程序执行的恶意代码还可以绕过内置安全控制和端点检测与响应(EDR)解决方案的检测。

这些问题对应的 CVE 编号为 CVE-2026-8863 和 CVE-2026-10797,后者指的是 shim 中一个早已修补的问题,该问题允许通过修改第二阶段引导加载程序的签名头来绕过基于证书的撤销机制。

ESET 警告说,只要使用过期证书签名的引导加载程序未通过哈希显式撤销,"Microsoft Corporation UEFI CA 2011" 证书的过期对 Secure Boot 验证过程没有任何影响。

ESET 表示:"这些旧 shim 的危险之处并不在于什么新漏洞,而在于不需要新漏洞就能绕过 UEFI Secure Boot。攻击者不需要复杂的漏洞利用原语——只需要一份旧版、仍然受信任但未撤销的 shim 二进制文件,以及对 UEFI shim 工作原理的基本了解。这就足以绕过 UEFI Secure Boot 这样一项至关重要的安全功能。"


来源信息

来源:The Hacker News

原文链接:https://thehackernews.com/2026/07/11-old-microsoft-signed-linux-uefi.html

作者:info@thehackernews.com (The Hacker News)