Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.050 — 2026-08-23
NEWS 约 1 分钟

npm默认封杀postinstall脚本

npm 12 默认停跑安装脚本,堵住供应链攻击入口,也可能让部分依赖先“装不上”。

IMAGE — InfoQ 中文

安装一个 JavaScript 软件包,过去可能像拆快递时顺手执行了箱内附带的命令:开发者未必留意,代码却已在电脑或服务器上运行。npm 12 改掉了这一默认行为。依赖项的 preinstall、install 和 postinstall 脚本现在一律不运行,除非项目明确批准。

postinstall 是安装完成后自动执行的命令,常用于编译原生模块或下载文件,也长期是供应链攻击的入口。新规则用 allowlist(获准运行脚本的依赖清单)把“默认信任”改成“逐项放行”。连含有 binding.gyp 的包也不能再隐式启动 node-gyp——这个工具负责把 C/C++ 代码编译成 Node.js 可加载的模块。据 JFrog 报告,过去一年观察到的恶意 npm 攻击中,本次收紧的三类途径约占 53%。

代价也很直接:esbuild、sharp、Puppeteer 等正常软件包依赖安装脚本,升级后可能需要额外配置才能工作。安全研究人员担心,频繁的构建失败会造成“审批疲劳”,让开发者习惯性放行。npm 12 收紧了入口,但实际效果仍取决于团队是否认真审查允许列表。


供稿材料 SOURCES — 1

← 返回 2026-08-23 · 科技板块