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