2026年8月20日,流行的 Rust crate arrayref 的一个被篡改版本出现在 crates.io 上。版本 0.3.10 添加了一个对名为 proc-macro1 的错字陷阱 crate 的依赖,其构建脚本在项目编译时下载并运行一个远程二进制文件。该代码在构建时运行,因此仅编译一个拉取了错误版本的项目就足以触发它。 crates.io 团队随后移除了这些恶意版本。
真正的 arrayref 和 append-only-vec crate 由 droundy 维护,其账户似乎已被篡改。相应的 GitHub 仓库已不再可用。另一个账户 dtolney 发布了 proc-macro1,非常接近 David Tolnay 的真实 dtolnay 账户。
该负载存在于 proc-macro1 1.0.107 的构建脚本中。它将服务器地址存储为 base64 片段,并在构建时重新组装这些片段,生成负载主机 hxxps://23[.]254[.]165[.]112:9089/ 和命令与控制地址 23[.]254[.]165[.]112:443。该脚本通过 TLS 连接获取特定架构的二进制文件,该连接接受任何证书而不进行验证,然后将其与构建分离后运行。
所有者账户撤销了较旧的 arrayref 版本 0.3.5 至 0.3.9,引导开发人员转向唯一未撤销的版本,即恶意版本 0.3.10。 arrayref 广泛用作传递性依赖项,深埋于常见的 Rust 依赖图中,通过 tiny-skia、sctk-adwaita 和 winit。
关键实体:人员:David Tolnay、droundy
来源: Hacker News · 由HeadlinesBriefing整理摘要