-
-
[翻译]在高度流行的 WiFi 芯片固件中发现漏洞
-
发表于:
2019-5-31 17:50
9257
-
[翻译]在高度流行的 WiFi 芯片固件中发现漏洞
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 上执行代码。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!