Rust 资讯:Rust 1.77.2 发布,修复 Windows 上一个高危漏洞

Rust 发布了 1.77.2 版本,属于小版本更新,最主要升级是发布了一个重要的标准库安全补丁,本次升级 Blog 由 The Rust Security Response WG(安全响应工作组团队)发布,以往都是 The Rust Release Team(发布团队),可见端倪。

关于CVE-2024-24576 漏洞:

Rust 最主要的优势就是安全,但这并不代表该编程语言就没有漏洞。安全专家近日发现了追踪编号为 CVE-2024-24576 的漏洞,攻击者可以利用 Rust 标准库中的漏洞通过命令注入攻击 Windows 系统。 该漏洞是由于操作系统命令和参数注入缺陷造成的,攻击者可在操作系统上执行潜在的恶意命令。

GitHub 已将此漏洞评为"严重",最高 CVSS 基线得分为 10/10。未经身份验证的攻击者可以在无需用户交互的情况下以低复杂度的攻击远程利用此漏洞。

Rust 安全响应工作组获悉,1.77.2 版之前的 Rust 标准库在使用"Command"在 Windows 上调用批处理文件(带有"bat"和"cmd"扩展名)时,无法正确转义参数。能够控制传递给生成进程的参数的攻击者可以通过绕过转义来执行任意 shell 命令。对于那些在 Windows 上使用不受信任的参数调用批处理文件的人来说,此漏洞的严重性至关重要。但不影响其他平台或使用。

Command::argCommand::args API 在其文档中声明,无论参数的内容如何,参数都将按原样传递给生成的进程,并且不会由 shell 进行评估。这意味着将不受信任的输入作为参数传递应该是安全的。在 Windows 上,其实现比其他平台更复杂,因为 Windows API 仅提供一个包含派生进程的所有参数的单个字符串,并且由派生进程来分割它们。大多数程序使用标准 C 运行时 argv参数,这实际上会导致参数分割方式基本一致。但一个例外是"cmd.exe"(用于执行批处理文件),它有自己的参数分割逻辑。这迫使标准库对传递给批处理文件的参数实现自定义转义。不幸的是,Rust 的转义逻辑不够彻底,有可能传递恶意参数,导致任意的 shell 命令可以执行。由于"cmd.exe"的复杂性,Rust 团队暂时没有找到在所有情况下都能正确转义参数的解决方案。因此,他们必须提高失控代码的可靠性并修改 Command API。如果命令 API 在创建进程时无法安全地转义参数,则会返回InvalidInput错误。该修复包含在 Rust 1.77.2 中。

Rust 安全响应工作组补充道:"要注意批处理文件的新转义逻辑在保守方面会出错,并且可能会拒绝有效参数。如果您自己实现转义或仅处理受信任的输入,那么在 Windows 上您还可以使用CommandExt::raw_arg方法来绕过标准库转义逻辑。"

具体原因

简单的说就是 Rust 的 std::process::Command 没有正确转义 Windows 上批处理文件的参数。

1.77.2 之前的版本,在 Windows 上使用命令 API 调用批处理文件(带有 bat 和 cmd 扩展名)时,Rust 标准库没有正确转义参数。这会造成的可怕的影响,那就是攻击者可以控制传递到生成进程的参数,然后绕过转义来执行任意的 shell 命令(Commands),在 Windows 上调用批处理文件时使用的是不可信任的参数,因此该漏洞是个非常高危的漏洞。不过好在其他平台或使用不受影响。

鉴于如此高危漏洞,Rust 安全响应工作组随后发布安全公告。随即发布了 1.77.2 标准库安全补丁,修复了存在于 Windows 系统上的问题,并表示其它平台或者用途不受影响。

注:如果对细节感兴趣,推荐阅读下面2篇文章

参考资料

相关推荐
vortex51 小时前
AI Skill 设计:网络安全审计中的自主性与规范化博弈
人工智能·安全·web安全
zhangfeng11332 小时前
那nvidia orim车载gpu tee安全飞地 和天垓 100 gpgpu的 飞地 ,大概有多大存储量 ,解密流程
人工智能·深度学习·安全·语言模型·gpu算力·芯片
吹个口哨写代码3 小时前
前后端分离的安全补救措施
安全
zhangfeng11334 小时前
天数智芯天垓 100 加密大模型分布式部署安全方案
人工智能·分布式·安全·transformer·gpu算力·芯片
workflower5 小时前
医院核心竞争力的四大重构
人工智能·安全·设计模式·重构·动态规划·scrum
zhangfeng11335 小时前
车载gpu 飞地 只保存密钥 不保存 权重 Orin确实有TEE安全飞地(TSEC/OP-TEE)
服务器·网络·人工智能·安全·transformer·芯片
humors2215 小时前
四种字母密码表示法
安全·网络安全·密码学
暗夜猎手-大魔王6 小时前
转载--Hermes Agent 11 | 智能审批与平台化安全:当 AI 来守护 AI
人工智能·python·安全
a诠释淡然7 小时前
C++ vs Rust:哪个更适合你的下一个项目?
开发语言·c++·rust
2603_954708317 小时前
微电网协调控制系统柜的应用场景有哪些?
分布式·安全·架构·能源·需求分析