-
-
[分享]Rust一个满分漏洞可能允许Windows命令注入攻击
-
发表于:
2024-4-10 18:37
3561
-
[分享]Rust一个满分漏洞可能允许Windows命令注入攻击
4月9日,Rust安全响应工作组收到通知,Rust标准库在使用Command API在Windows上调用批处理文件(bat和cmd扩展名)时,未能正确转义参数。攻击者能够控制传递给生成进程的参数,通过绕过转义来执行任意shell命令。

该漏洞(CVE-2024-24576,CVSS评分为最高的10分)由安全研究员RyotaK发现并报告,可被未经身份验证的攻击者在远程、低复杂度攻击和无用户交互的情况下利用。
据公告(3abK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8r3!0Y4i4K6u0W2M7Y4g2K6N6q4)9J5k6r3I4S2L8X3N6Q4x3X3g2G2M7X3N6Q4x3V1j5J5x3o6t1@1i4K6u0r3x3o6c8Q4x3V1j5H3z5g2)9J5c8X3y4$3k6g2)9J5k6o6t1H3x3U0c8Q4x3X3b7J5y4o6f1%4y4W2)9J5k6h3S2@1L8h3H3`.),在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
转载请注明出处和本文链接
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课