OpenWrt项目已经修复了一个可能导致攻击者向用户提供恶意固件镜像的安全问题。
关于 OpenWrt
OpenWrt 是一个可定制的操作系统,主要用于不同制造商的家用无线路由器,而不是他们提供的操作系统/固件。
“OpenWrt没有试图创建一个单一、静态的固件,而是提供了一个完全可写的文件系统,并可选择软件包管理,”该项目夸耀道。
“对于开发人员来说,OpenWrt 提供了一个构建应用程序的框架,而无需创建一个完整的固件映像和发布。对于用户来说,这意味着完全定制的自由,允许以供应商从未设想过的方式使用嵌入式设备。”
OpenWrt 安全问题
安全问题是在 OpenWrt 的 Attendedsysupgrade Server(ASU)中发现的,ASU 是基于 OpenWrt 的发行版的按需镜像服务器。
该服务器提供的服务(sysupgrade.openwrt.org)允许用户根据其特定设备和所需软件包请求新固件镜像。一旦镜像创建完成并交付,OpenWrt(设备上的操作系统)就会执行该镜像。
该问题由两个漏洞组成:
- Imagebuilder 中的命令注入漏洞,恶意用户可利用该漏洞向固件构建过程注入任意命令(并创建使用合法构建密钥签名的恶意固件镜像)。
- SHA-256 哈希值碰撞问题 (CVE-2024-54143): 会创建固件镜像构建请求的哈希值,但不幸的是,服务器会将其截断到前 12 个字符(共 64 个字符),这可能会让攻击者产生碰撞。
OpenWrt 开发人员 Paul Spooren 在发送给项目邮件列表的一封电子邮件中解释说:“通过利用(哈希碰撞问题),先前构建的恶意镜像可以取代合法镜像,从而使攻击者能够‘毒害’固件缓存,并向毫无戒心的用户提供受损镜像。”
安全研究员 Ry0taK(来自 Flatt Security 公司)发现了这一问题并私下向 OpenWrt 开发人员披露了这一问题,他演示了如何将这两个问题结合起来,让攻击者用先前构建的恶意固件镜像替换良性固件镜像。
您应该怎么做?
OpenWrt 的 Spooren 证实了这一点:
- 该问题影响了包括官方实例(sysupgrade.openwrt.org)在内的所有 ASU 实例,官方实例 “运行在独立于 OpenWrt Buildbot 的专用服务器上,无法访问任何合理的资源(SSH 密钥、签名证书……)”。
- 在 downloads.openwrt.org 上托管的官方镜像和 24.10.0-rc2 的自定义镜像均未受到影响
他补充说:“对其他自定义镜像的可用构建日志进行了检查,未发现任何恶意请求,但由于自动清理,无法检查 7 天前的构建日志。”
他补充说:“虽然受影响的镜像可能性几乎为零,但建议用户将镜像升级到相同版本,以消除受此影响的任何可能性。”
建议运行公共、自托管 ASU 实例的用户立即更新或应用两个概述提交。