严重的 Rust 缺陷在特定 Windows 使用案例中构成漏洞利用威胁

严重的 Rust 缺陷在特定 Windows 使用案例中构成漏洞利用威胁

关键的 Rust 缺陷在特定 Windows 使用案例 PlatoBlockchain 数据智能中造成漏洞利用威胁。垂直搜索。人工智能。

在漏洞研究人员发现用于在 Windows 系统上执行批处理文件的特定函数可以利用注入缺陷进行利用后,Rust 项目发布了其标准库的更新。

Rust 编程语言中包含的一组常用函数(称为标准库)提供了通过命令 API 执行 Windows 批处理文件的能力(以及许多其他功能)。然而,该函数没有足够严格地处理 API 的输入,无法消除将代码注入执行的可能性。 Rust 安全响应工作组咨询 9 月 XNUMX 日发布。

应用安全公司 JFrog 的高级漏洞研究员 Yair Mizrahi 表示,虽然 Rust 以其内存安全功能而闻名,但该事件凸显了该编程语言无法防止逻辑错误。

“总的来说,Rust 的内存安全性是一个显着的优势,但开发人员还必须密切关注潜在的逻辑错误,以确保基于 Rust 的应用程序的整体安全性和可靠性,”他说。 “为了解决此类逻辑问题,Rust 鼓励严格的测试和代码审查过程,以及使用静态分析工具来识别和减少逻辑错误。”

Rust 因其非常安全的编程语言而享有盛誉,因为它不会让应用程序遭受通常被称为内存安全漏洞的严重缺陷。谷歌已归因 减少内存不安全代码 微软发现,直到 2018 年转向内存安全语言之前,此类漏洞经常出现 占所有安全问题的 70%.

Windows 带来了一系列问题

最新的问题不是内存安全漏洞,而是用于处理不受信任的输入的逻辑存在问题。 Rust 标准库的一部分允许开发人员调用函数将批处理文件发送到 Windows 机器进行处理。 Rust 基金会的技术总监 Joel Marcey 表示,将代码作为批处理文件提交给主机是有原因的,该基金会为编程语言的维护者和 Rust 生态系统提供支持。

“批处理文件在系统上运行的原因有很多,Rust 提供了一个 API 来让你相当轻松地执行这些文件,”他说。 “因此,虽然这不一定是 Rust 最常见的用例,但在实施修复补丁之前,API 理论上允许恶意行为者通过运行任意命令来接管您的系统,这绝对是一个严重的漏洞。”

通常,开发人员可以将工作负载转发到 Windows 主机,以便通过命令应用程序编程接口 (API)(标准库的一部分)作为批处理执行。通常,Rust 保证对 Command API 的任何调用的安全性,但在这种情况下,Rust 项目无法找到阻止所有参数执行的方法,主要是因为 Windows 不遵守任何类型的标准,并且API 可能允许攻击者提交然后执行的代码。

Rust 安全响应工作组表示:“不幸的是,据报道,我们的转义逻辑不够彻底,有可能传递恶意参数,导致任意 shell 执行。”

Rust 项目反应灵敏

专家表示,虽然处理任何漏洞都可能令人头疼,但 Rust 项目已经表明该小组可以快速解决问题。标准库漏洞, CVE-2024-24576,最终是 Windows 批处理问题的问题,如果其他编程语言不能充分解析发送到 Windows 批处理过程的参数,则会影响其他编程语言。 JFrog 的 Mizrahi 表示,Rust 项目似乎是第一个修复将参数传递给 Windows CMD.exe 进程的项目。

Rust 项目表示,这些组织无法完全消除该问题,但当传递给函数的任何增强可能不安全时,Command API 不会返回错误。 

JFrog 的 Mizrahi 敦促 Rust 扩大静态应用程序安全测试的使用,并扩大模糊测试和动态测试的使用。

“总的来说,Rust 通过强调内存安全和鼓励严格的测试实践走上了正确的道路,”他说。 “将这些努力与静态分析和模糊测试的持续进步相结合,可以帮助 Rust 社区和更广泛的软件行业在未来几年解决逻辑错误和输入验证缺陷方面取得重大进展。”

时间戳记:

更多来自 暗读