安全公告:恶意软件包 rustdecimal

2022 年 5 月 10 日 · Rust 安全响应工作组

这是 官方安全公告 的交叉发布。官方公告还包含使用我们的 PGP 密钥签名的版本。

Rust 安全响应工作组和 crates.io 团队于 2022 年 5 月 2 日 收到通知,发现存在恶意软件包 rustdecimal,其中包含恶意软件。该软件包名称故意与流行的 rust_decimal 软件包名称相似,希望潜在受害者会拼错其名称(一种称为“错字劫持”的攻击)。

为了保护生态系统的安全,crates.io 团队在得知恶意软件后立即将该软件包从注册表中永久删除。还对 crates.io 上的所有软件包进行了分析,没有发现其他具有类似代码模式的软件包。

请记住,rust_decimal 软件包 **没有** 被破坏,并且仍然可以安全使用。

软件包分析

该软件包自 2022 年 3 月 25 日首次发布以来,下载量不到 500 次,并且 crates.io 注册表中没有软件包依赖于它。

该软件包包含与合法 rust_decimal 软件包相同的源代码和功能,除了 Decimal::new 函数。

当调用该函数时,它会检查 GITLAB_CI 环境变量是否已设置,如果已设置,它会将二进制有效负载下载到 /tmp/git-updater.bin 并执行它。二进制有效负载支持 Linux 和 macOS,但不支持 Windows。

无法分析二进制有效负载,因为在执行分析时,下载 URL 无法正常工作。

建议

如果您的项目或组织正在运行 GitLab CI,我们强烈建议您检查您的项目或其依赖项之一是否从 2022 年 3 月 25 日开始依赖 rustdecimal 软件包。如果您发现依赖于该软件包,则应认为您的 CI 环境已被破坏。

一般来说,我们建议定期审核您的依赖项,并且只依赖您信任其作者的软件包。如果您在软件包的源代码中发现任何可疑行为,请遵循 Rust 安全策略 并将其报告给 Rust 安全响应工作组。

致谢

我们要感谢 GitHub 用户 @safinaskar此 GitHub 问题 中识别出恶意软件包。