pnpm 12.11 带来两个值得关注的改动。
自动安装并校验 Rust 工具链
它会安装 rust-toolchain.toml 里指定的 Rust 工具链并做签名校验。对有 Rust 原生扩展的项目,这消除了“本地能编译、CI 编译不过”的一类问题。
skills 文件链接
直接依赖里带的 skills/SKILL.md 文件,会在用 pnpm approve 批准后链接到 .claude/skills 这类目录。这是把依赖的能力显式暴露出来的做法。
权限设置
新增的权限设置会记录每个依赖可以做什么,其中 build 能力的优先级高于 allowBuilds。这个方向很明确:依赖默认不信任,能力要显式授予。
12.10 的两个安全修复
一是阻止含路径遍历的依赖版本字符串往全局虚拟存储之外写文件;二是阻止 lockfile 覆盖以 version+integrity 钉住的配置依赖的完整性。pnpm audit signatures 现在会对照 lockfile 里记录的完整性做检查;超过 64 MiB 的归档元数据在载入内存前就被拒绝。11.28.5 在 11.x 线上带了同样的修复。
12.10 的另一个特性
实验性的 loaded node linker,通过 Node.js loader 直接从内容寻址存储加载兼容的依赖,省掉拷贝。
为什么值得关注
CI/CD 供应链攻击这两周很活跃。GhostAction 和 ChainDrop/tensorlake 两个行动已经能规模化攻陷 CI/CD 流水线,从数百个受害环境里窃取云凭据、SSH 密钥和 AI 服务商的 API Key。
实操建议
第一,审计所有 workflow 里对 secret 的访问范围。第二,轮换任何受影响流水线能触及的密钥。第三,把依赖的安装权限收紧,别让 postinstall 默认可跑。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。