首页
社区
课程
招聘
[翻译]在高度流行的 WiFi 芯片固件中发现漏洞
发表于: 2019-5-31 17:50 9258

[翻译]在高度流行的 WiFi 芯片固件中发现漏洞

2019-5-31 17:50
9258

这些安全漏洞是在 Marvell Avastar 88W8897 SoC (Wi-Fi + Bluetooth + NFC)、 Sony PlayStation 4 (及其专业版)、 Microsoft Surface (+Pro)、 Xbox One、 Samsung Chromebook、 智能手机(Galaxy J1) 和  Valve SteamLink 中发现。

Marvell 的模块固件是基于 ThreadX 实时操作系统,这是一种由 Express Logic  开发的操作系统(RTOS)。购买许可证时可以获得 RTOS 的源代码。

该厂商在其网站上声称 ThreadX 拥有超过 62 亿的部署(包括消费设备、医疗电子和工业控制设备),是支持 Wi-Fi 芯片最流行的软件之一。

WiFi 芯片通常由制造商的驱动程序初始化,下图为该驱动程序在启动执行程序期间加载固件映像。

在 Marvell 的无线芯片系统(SoC)中,有一些驱动程序与它使用的 Linux 内核一起工作:'mwifiex' (Linux 官方存储库中有源代码)、'mlan' 和 'mlinux' 的来源也可以在官方的 steamlink-sdk 报告中找到。

这两个功能都具有调试功能,允许在 WiFi 模块的内存中读写。

固件中发现的漏洞之一是块池溢出( block pool overflow ),当芯片扫描可用网络时可以触发,即使设备已连接到 WiFi 网络,这个过程依旧会每隔五分钟启动一次,并且与 WiFi名称或者访问密码无关。

"这就是为什么这个 bug 特别炫酷的地方了,这样就提供了在任何无线连接状态下(即使设备没有连接到任何网络)仍然可以通过零点点交互( zero-click interaction )实现连接设备的机会。例如,人们可以在刚刚启动的三星 Chromebook 上执行 RCE【远程代码执行】。" Embedi 公司专职研究嵌入式设备安全性的研究员 Denis Selianin 表示。

在该公司今天发布的一份报告中,Selianin 描述了两种利用方式,一种在满足特定条件的情况下,适用于任何基于 ThreadX 的固件,另一种是 Marvell 在其模块上实现固件的典型方法;研究人员表示,将这两种方法结合起来就可以获得可靠的利用。

在通常情况下,攻击者可以覆盖指向下一个空闲内存块的指针,并控制分配下一个内存块的位置。
Selianin 解释说,"通过控制下一个块分配的位置,攻击者可以将此块放置到一些关键的运行时结构或指针所在位置,从而实现攻击者的代码执行。"

利用 Marvell Avastar SoC 上的漏洞包含内存管理程序逆向工程封装函数。如果下一个块被占用,则此利用方法有效。

这些函数在每个 ThreadX 块的开头使用一个带有特殊指针的元数据头,这些特殊指针在释放块之前被调用。这些信息足以允许在 wireless SoC 上执行代码。


Selianin 使用自定义工具从 Valve Steam Link 硬件设备(不再制造,但仍然支持)dump 出 WLAN 芯片的固件,使用 afl-unicorn  检查它是否有潜在的可利用漏洞。它能够找到关于 jfour 内存损坏的问题。



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
都玩硬件漏洞了
2019-6-1 03:17
0
游客
登录 | 注册 方可回帖
返回
//