Rust一个满分漏洞可能允许Windows命令注入攻击
2024-4-10 17:59:33 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

4月9日,Rust安全响应工作组收到通知,Rust标准库在使用Command API在Windows上调用批处理文件(bat和cmd扩展名)时,未能正确转义参数。攻击者能够控制传递给生成进程的参数,通过绕过转义来执行任意shell命令。

该漏洞(CVE-2024-24576,CVSS评分为最高的10分)由安全研究员RyotaK发现并报告,可被未经身份验证的攻击者在远程、低复杂度攻击和无用户交互的情况下利用。

据公告https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html,在Windows上,如果程序代码或其依赖项调用执行带有不受信任参数的批处理文件,则1.77.2之前的所有Rust版本都会受到影响。其他平台或Windows上的其他用途不受影响。

由于cmd.exe的复杂性,Rust安全团队无法找到一个能在所有情况下正确转义参数的解决方案。因此,他们不得不改进转义代码的健壮性并修改Command API——如果Command API在生成进程时无法安全转义参数,则会返回InvalidInput错误。

Rust安全响应工作组表示会在最新发布的Rust 1.77.2中修复漏洞。另外,“如果您自己实现转义或仅处理受信任的输入,在Windows上您还可以使用CommandExt::raw_arg方法来绕过标准库的转义逻辑。” 工作组补充道。

RyotaK在给用户的建议中说,为了防止批处理文件的意外执行,用户应考虑将批处理文件移动到未包含在PATH环境变量中的目录。——在这种情况下,除非指定完整路径,否则批处理文件将不会被执行。

编辑:左右里

资讯来源:rust官网、securityonline

转载请注明出处和本文链接



球分享

球点赞

球在看

“阅读原文一起来充电吧!

文章来源: https://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458550115&idx=2&sn=d2aed2de5ebd3bc02bec72a88ef2f7ef&chksm=b18d4fe986fac6ff8f8a36fcc6527919bea3359a917d97ac8d4cdd0ab970a323a0ca9fd475d0&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh