Rust 社区最近有点尴尬。这门语言靠「内存安全」圈粉无数,结果供应链安全这块地板,被人直接掀了。

问题出在 crates.io。这个官方包仓库托管着 12 万个 crate,下载量动辄千万次,但审核机制约等于没有——任何人都能上传,没有代码签名,也没有强制审查。安全研究员 Alex Gaynor 和 Geoffroy Couprie 在最新分析里算了笔账:攻击者想污染一个热门项目的依赖树,成本比大多数人想象的要低得多。

更扎心的是历史包袱。Rust 1.31 之前连 lock 文件都不稳定,团队想锁定依赖版本都得折腾。现在虽然有了 Cargo.lock,但「依赖即信任」的默认逻辑没变。Gaynor 的原话很直接:「我们花了十年告诉 C 程序员要检查边界,却忘了告诉他们也要检查 who wrote this code。」

两位研究者提出的方案不算激进:把 crates.io 拆成「已审核」和「 Wild West 」两个区,用声誉系统给包打标签,同时推代码签名和可复现构建。但 crates.io 团队目前只承诺了「会讨论」,时间表没有。

讽刺的是,Rust 基金会去年刚拿了 AWS、微软、谷歌的钱,说要「保障生态安全」。这笔钱花在哪了,社区正在评论区里问。