威胁情报与安全事件
【CVSS评分10.0】Windows最新“BatBadBut”Rust 严重漏洞

近期,Rust 标准库中的一个严重漏洞可被利用来针对 Windows 系统并执行命令注入攻击。
该漏洞是由 Flatt Security 的一位名为 RyotaK 的安全工程师发现的。他们将其命名为 BatBadBut,并于 2024 年 4 月 9 日发布了分析报告。
同一天,GitHub 将其注册为CVE-2024-24576,严重性评分 (CVSS) 为 10.0。
▌解码BatBadBut 漏洞
BatBadBut 是一个漏洞,允许攻击者在满足特定条件时对间接依赖于“CreateProcess”函数的 Windows 应用程序执行命令注入。
RyotaK 解释道:“CreateProcess() 在执行批处理文件(.bat、.cmd 等)时隐式生成 cmd.exe,即使应用程序未在命令行中指定它们。问题在于 cmd.exe 对命令参数的解析规则很复杂,并且编程语言运行时无法正确转义命令参数。”
研究人员表示,正因为如此,如果有人可以控制批处理文件的命令参数部分,就可以注入命令。
在4月9日发布的公告中,Rust 安全响应工作组表示,已收到通知称,在 Windows 上使用 Command API 调用批处理文件(带有 bat 和 cmd 扩展名)时,Rust 标准库没有正确转义参数。
该公告中写道:“能够控制传递给生成进程的参数的攻击者可以通过绕过转义来执行任意 shell 命令。”
▌CVSS 高,风险低?
BatBadBut 的严重程度获得了最高评分10.0。
然而,RyotaK 在他们的帖子中表示,该漏洞在现实世界中的可利用性可能比最初担心的要低。
首先,BatBadBut 的成功利用只有在满足以下条件时才会发生:
应用程序在 Windows 上执行命令
应用程序未指定命令的文件扩展名,或者文件扩展名是 .bat 或 .cmd
正在执行的命令包含用户控制的输入作为命令参数的一部分
编程语言的运行时无法正确转义 cmd.exe 的命令参数
此外,BatBadBut 仅影响 1.77.2 之前的 Rust 版本 – 不影响其他平台或使用。
高的 CVSS 评分是基于库的归因方式。
“CVSS v3.1 的用户指南指出,库的 CVSS 分数应根据最坏情况计算,这就是为什么最近编程语言的漏洞尽管有特定条件的要求却还是获得高分,”RyotaK解释道。
安全研究人员建议根据“论坛事件响应和安全团队 (FIRST)对软件库的实施建议”重新计算 CVSS 分数。

尽管该漏洞只有在满足一定条件的情况下才会被利用,组织仍然要保持警惕,尽快验证自身的防御体系是否能够抵御相关攻击。针对该漏洞利用的攻击模拟规则已经加入到塞讯安全度量验证平台中,您可以在塞讯安全度量验证平台中搜索关键词“rust-lang 标准库”获取相关攻击模拟验证动作,从而验证您的安全防御体系是否能够有效应对该漏洞利用,平台以业界独有方式确保您的验证过程安全无害。


