二十五个包管理器里,只有两个默认拦住被篡改的下载
来源:dev.to — 2026-10-23
📋 概述
Trail of Bits 的 Keegan Ryan 搭了个假的被攻破包服务器,把 25 个流行包管理器指过去:只有 Go 和 vcpkg 在没有锁文件时也校验了每一个下载,其余 23 个给什么装什么。锁文件也没救回大多数——25 个里不到一半默认校验哈希。Pub(Dart/Flutter)发现哈希不匹配照样安装,还把锁文件改成匹配值,除非加 --enforce-lockfile;pnpm 会覆盖锁文件。这类「跑了检查但照样安装」的工具,比完全不检查的更难发现。攻击是否算成功,只看注入的代码有没有真的执行。
🔑 核心要点
- 假服务器测试 25 个包管理器,只有 Go 与 vcpkg 在无锁文件时也校验下载
- 其余 23 个在没有锁文件时给什么装什么
- 不到一半的工具默认校验锁文件里的哈希
- Pub 发现哈希不匹配仍安装,并把锁文件改成匹配值
- 攻击是否成功不看告警,只看注入的代码有没有真跑起来
💡 金句
“Two of them, Go and vcpkg, verified every package they downloaded, even without a lockfile. Without one, the other 23 installed whatever they were given.”
译:只有 Go 和 vcpkg 两个,即使没有锁文件也校验了每个下载;其余 23 个,给什么就装什么。
← 返回 dev.to 首页