这是官方安全公告的交叉发布。 官方公告也包含了我们 PGP 密钥的签名版本。
Rust 安全响应工作组和 crates.io 团队在 2022-05-02 收到通知,得知存在包含恶意软件的恶意 crate rustdecimal
。该 crate 名称故意与流行的 rust_decimal
crate 的名称相似,希望潜在的受害者会拼错其名称(一种称为“拼写错误抢注”的攻击)。
为了保护生态系统的安全,crates.io 团队在得知恶意软件后立即从注册表中永久删除了该 crate。还对 crates.io 上的所有 crate 进行了分析,没有发现其他具有类似代码模式的 crate。
请记住,rust_decimal
crate 没有被入侵,仍然可以安全使用。
crate 分析
该 crate 自 2022-03-25 首次发布以来,下载量不到 500 次,并且 crates.io 注册表上没有 crate 依赖它。
该 crate 包含与合法的 rust_decimal
crate 相同的源代码和功能,除了 Decimal::new
函数。
当调用该函数时,它会检查是否设置了 GITLAB_CI
环境变量,如果设置了,它会将二进制有效负载下载到 /tmp/git-updater.bin
并执行它。二进制有效负载支持 Linux 和 macOS,但不支持 Windows。
无法对二进制有效负载进行分析,因为在执行分析时,下载 URL 已失效。
建议
如果您的项目或组织正在运行 GitLab CI,我们强烈建议您检查您的项目或其依赖项之一是否依赖于 rustdecimal
crate,从 2022-03-25 开始。如果您注意到对该 crate 的依赖,您应该认为您的 CI 环境已受到威胁。
一般来说,我们建议定期审核您的依赖项,并且只依赖您信任的作者的 crate。如果您注意到 crate 的源代码中有任何可疑行为,请遵循Rust 安全策略并向 Rust 安全响应工作组报告。
致谢
我们要感谢 GitHub 用户 @safinaskar
在 这个 GitHub 问题中识别出了这个恶意 crate。