嵌入式 Linux 设备的“瑞士军刀” BusyBox 受多个漏洞影响
作者:Elizabeth Montalbano
编译:代码卫士
研究人员在嵌入式 Linux 应用使用的流行程序BusyBox 中发现了14个漏洞,可导致拒绝服务;其中10个漏洞还可导致远程代码执行。
研究人员指出,在这14个漏洞中,其中1个漏洞可泄露设备信息。研究人员深入分析了当前全球顶级运营技术和物联网设备都在使用的软件套件 BusyBox。BusyBox 被称为嵌入式 Linux 的“瑞士军刀”,由Unix 工具即被打包为单个可执行文件的小程序组成,包括一个完全开发的 shell、一个 DHCP 客户端/服务器和小工具如 cp、ls、grep 等组成。
这一发现起着巨大作用,因为 BusyBox 不仅用于嵌入式 Linux 设备中,还用于设备之外的无数 Linux 应用中。研究人员指出,虽然发现的漏洞仅存在于特定案例中,但如被利用则可造成极其严重的后果。不过好在利用这些漏洞需要一定的条件。
这些漏洞的CVE 编号为从CVE-2021-42373到 CVE-2021-42386,影响 BusyBox 版本 1.16至1.33.1(不同漏洞的影响版本各不相同)。这些漏洞还影响多个小程序,如 “man”、“lzma/unizma” 和 “ash” 分别受一个缺陷影响,”hush” 受两个缺陷影响,而“awk”受9个漏洞影响。
由于这些小程序并非守护进程,它们只有在接收到不受信任数据(一般通过命令行参数接收)时才可遭利用。研究团队分析发现,总体而言,使用 BusyBox 的40%的固件包括与其中一个受影响小程序相关的 BusyBox 可执行文件,使得该问题“在基于 Linux 的嵌入式固件中极为广泛“。然而,出于多种原因,这些漏洞目前并未对受影响设备造成严重威胁。
例如,危险性最大的缺陷是CVE-2021-42374,它是位于 unlzma 中的界外堆读取漏洞,可导致拒绝服务和信息泄露。然而,如研究人员详细解释的那样,该漏洞仅可在解压构造的lzma压缩输入时才能被用于攻击设备。Lzma 是使用目录压缩的压缩算法,并使用range 编码器编码输出。利用该缺陷需要满足两个具体的编码条件:“buffer_pos = 0” 和 “rep0 = offset + dict_size”。要满足这些条件,攻击者需要准备一个特殊构造的用 lzma 编码的流,当解码时将满足这些条件并最终泄露设备内存。
虽然拒绝服务漏洞更易于利用,但小程序几乎总是以单独的fork 进程运行的事实通常能够缓解该影响。最后,大多RCE缺陷(尤其是出现在 “awk”小程序中的缺陷)也难以利用,因为“从外部输入处理 awk 模式的情况很稀少而且通常是不安全的)。
不过,研究人员建议使用 BusyBox 的设备更新至最新版本,且开发人员应确保未使用受影响的小程序。
谷歌发布 Linux 内核提权漏洞奖励计划,综合奖金最高超30万美元
微软在 Linux 虚拟机偷偷安装Azure App,后修复严重漏洞但Linux虚拟机难以修复
被利用达数百万次、瞄准 Linux 系统的 Top 15漏洞
https://threatpost.com/busybox-security-bugs-linux-devices/176098/
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。