编译:代码卫士
安全分析工具 Binwalk 中存在一个严重的路径遍历漏洞,可导致远程代码执行后果。
Binwalk 是一款适用于 Linux系统的热门命令行工具,用于分析、逆向工程和提取固件镜像。该路径遍历漏洞要求用户“使用提取模式 (-e option) 通过binwalk打开恶意文件”,因此要求用户交互才能触发。该漏洞的编号是CVE-2022-4510,CVSS 评分7.8,因此是高危级别的漏洞。
01 根因
该漏洞是因为2017年合并PFS(专业文件系统)提取插件和binwalk 引入的,通过os.path.join缓解路径遍历风险的尝试失败时触发。
六年后,研究员Kaiser 发现,“通过含有../ 遍历顺序的文件名构建合法的PFS文件系统,我们可强制binwalk 在提取目录之外写文件”。PFS是偶然出现在嵌入式设备中的鲜为人知的文件系统格式。
02 与环境无关
Kaiser 瞄准binwalk的插件系统,目的是通过“与环境无关的”路径实现RCE。当插件被释放到binwalk的插件目录中时,就会加载到所有的binwalk扫描中。他指出,“因此,如果我们利用该路径遍历在该位置写一个合法的插件时,则binwalk 会立即收集并执行插件,同时仍然会扫描该恶意文件。PFS提取器将负责在必要时创建所有要求的目录,因此我们不会在所运行的系统上看到任何东西。”
Kaiser 构造了一个恶意插件,“由于它并未定义确定其目的(如签名扫描、熵计算、压缩流识别)的明确的MODULE属性,因此执行了两次。我利用这种行为使其进行清理。”
受影响版本是 2.1.2b到2.3.3之间的所有版本(包含这两个版本)。该漏洞已在binwalk 2.3.4版本中修复。而早在2022年10月,ONKEY公司就曾与该工具所属公司微软Refirm Labs实验室的维护人员进行沟通并给出推荐补丁,时间已过去三个多月。
03 影响Yaffshiv等的类似漏洞
Kaiser 还发现,其它文件系统提取器如ubi-reader、Jefferson、yaffshiv项目中也存在类似的中危CVE漏洞。
他提醒称,即使是已全面更新的binwalk实例也可能易受同样的利用链影响,因为yaffshiv默认在binwalk上安装和启动,例外的一点只是攻击向量从PFS变成了YAFFS。
Kaiser 指出,“Yaffshiv 由binwalk 团队维护,因此希望很快会出修复方案。编写安全的格式解析器和提取器是一项复杂的任务,因此鉴于binwalk所支持的格式数量,从中发现这类漏洞也不足为奇。”
04 有用的建议
这项研究提醒我们,安全工具本身也会包含安全漏洞。Kaiser 提到,“这对于取证分析和逆向工程更为重要,因为在类似环境中,我们通常会面临不受信任的且有可能恶意的文件。”
他指出,“虽然本文所提到的路径遍历可能会使逆向工程的投入无效并篡改所收集的证据,但它们同时证明了限制此类漏洞影响的沙箱分析环境的重要性。随着对binwalk等自动化提取和分析工具的依赖性不断增强,开发人员和用户有必要了解这类风险。”
Kaiser 表示,D-Link RomFS 插件可能是下一个研究对象,理由是它“很可能受类似漏洞影响”。
原文链接
https://portswigger.net/daily-swig/serious-security-hole-plugged-in-infosec-tool-binwalk
声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。