新发现的 U-Boot 漏洞可导致隐秘固件攻击
- 浏览次数 35
- 喜欢 0
在广泛使用的 U-Boot 引导加载程序中发现了六个漏洞,攻击者可利用这些漏洞在设备启动期间执行恶意代码,从而可能发起隐秘的固件攻击,破坏安全防护并安装持久性恶意软件。
U-Boot 是全球使用最广泛的开源引导加载程序之一,广泛应用于许多嵌入式 Linux 设备中,包括企业服务器的基板管理控制器(BMC)、网络设备、工业系统、物联网设备及其他设备。
由于 U-Boot 负责加载操作系统,引导加载程序中的漏洞可让攻击者在操作系统及其安全软件启动之前就攻陷设备。
U-Boot 的安全功能之一称为"验证启动",它使用加密签名确保只有经过受信任密钥签名的固件和操作系统镜像才能在启动时被加载。
在本周发布的一份报告中,固件安全公司 Binarly 披露了 U-Boot 的 FIT(扁平化镜像树)签名验证代码中的六个漏洞。
Binarly 解释道:"认识到该组件的关键性,Binarly 研究团队决定更深入地检查 U-Boot 项目的核心功能。"
"这项研究发现了六个不同的漏洞,其影响范围从拒绝服务到在验证不受信任的镜像时执行任意代码。"
据研究人员称,其中两个漏洞可能潜在地导致固件验证期间的任意代码执行,而其余四个漏洞可被利用来使易受攻击的设备崩溃。
由于这些漏洞影响的是操作系统启动前验证固件镜像的代码,如果攻击者能够利用该过程,他们可能能够在操作系统加载之前执行恶意代码。
披露的六个漏洞如下:
BRLY-2026-037:该漏洞在处理恶意固件镜像时可能导致 U-Boot 崩溃,并在特定条件下可被用于执行任意代码。
BRLY-2026-038:一个内存损坏漏洞,攻击者可利用该漏洞在固件签名验证期间执行任意代码。
BRLY-2026-039:一个越界读取漏洞,通过强制 U-Boot 读取超出固件镜像范围的数据,可使设备崩溃。
BRLY-2026-040:一个空指针解引用漏洞,特制的固件镜像可利用该漏洞使引导加载程序崩溃。
BRLY-2026-041:外部存储固件数据验证不当,在处理恶意固件镜像时可能导致 U-Boot 崩溃。
BRLY-2026-042:一个无界递归漏洞,可耗尽可用栈内存并使引导加载程序崩溃。
据 Binarly 称,大部分存在漏洞的代码自 U-Boot 2013.07 版本以来就已存在,这意味着这些漏洞可能影响该项目的 50 多个版本,以及在其自有固件中使用该漏洞代码的供应商。
Binarly 解释道:"这意味着它们可能影响 U-Boot 项目的 50 多个稳定版本。算上众多下游供应商的分支版本,这些漏洞对行业产生了重大影响。"
如果被成功利用,这些任意代码执行漏洞可让攻击者在启动过程的最早阶段执行代码。
由于这发生在操作系统加载之前,攻击者可能能够禁用固件安全功能、修改启动过程、安装持久性固件恶意软件,或以高权限执行其他恶意操作。
Binarly 表示,由于恶意操作在操作系统启动之前执行,因此很难被检测到。
Binarly 称,利用这些漏洞并不总是需要物理访问。在支持远程固件更新的系统(如 BMC)上,已经攻陷管理接口的攻击者可以上传特制的固件镜像来利用这些漏洞。
Binarly 已向 U-Boot 维护者报告了这些漏洞,并提交了所有六个问题的补丁,这些补丁已被接受并合并到项目的上游代码库中。
然而,由于 U-Boot 是由各个硬件制造商集成到固件中的,因此修复程序必须首先被纳入供应商的固件更新中,然后才能分发到客户手中。
不再接收固件更新的老旧或不受支持的设备可能永远不会得到修补。