天塌了!NPM 又被 投毒‼️

B站影视 内地电影 2025-09-17 12:16 1

摘要:攻击者篡改大名鼎鼎的 chalk 依赖,把挖矿木马 + 系统信息窃取脚本塞进每周下载量 6000 万次的流行包,导致全球无数 CI 瞬间变矿场(详见《npm 大屠杀:6000 万下载量 chalk 系被投毒》)。

就在 七天前npm 才刚刚经历一场 “史诗级”供应链大屠杀

攻击者篡改大名鼎鼎的 chalk 依赖,把 挖矿木马 + 系统信息窃取脚本 塞进 每周下载量 6000 万次的流行包,导致 全球无数 CI 瞬间变矿场(详见《npm 大屠杀:6000 万下载量 chalk 系被投毒》)。

9/15 傍晚220 万周下载量的 @ctrl/tinycolor 被劫持发布恶意版本,postinstall 自动执行 bundle.js,扫描并外泄本地机密。9/16 凌晨:同一攻击链已 横向感染 40+ 包,涵盖 Angular 生态、颜色工具、甚至企业安全厂商包。9/16 早上第二波投毒 启动,目标直指 CrowdStrike 相关 npm 包,可自动触发恶意 GitHub Actions。

一句话总结:上周投毒 chalk,本周轮到你离不开的配色小工具 + 安全大厂 SDK连“守门员”都成了输送后门的人

入口:钓鱼或泄露 maintainer 的 npm 令牌 → 劫持发布通道。植入:在 package.json 的 postinstall 字段调用 node bundle.js。执行:扫描 ~/.AWS、~/.npmrc、~/.env、GITHUB_TOKEN、Docker_AUTH。把机密拼接到 webhook.site 公开地址,无需自建服务器。若运行在 GitHub Actions,还会 创建新的 workflow 文件,持续驻留。扩散:利用依赖平级提升(hoist)(node_modules/@ctrl/tinycolor 被上百个包引用),一次投毒,万人中招

以下名称均来自 socket 团队实时推文,列表仍在增加

@ctrl/tinycolor(≥4.0.3)crowdstrike-* 系列今早更新的所有版本任何在 9/14-9/16 突然发 patch 的 Angular 配色周边包名称带 -color、-theme、-ui 且 版本号异常跳升 的小众包(典型特征:上周下载

① 停装

# 全局关闭脚本npm config set ignore-scripts true# 如果 CI 里用的是 yarn,也加yarn config set ignore-scripts true

② 锁死

# 把现有可用版本写死npm shrinkwrap# 或者把 lock 文件设为只读,禁止自动刷新git add package-lock.json && git commit -m "freeze clean deps"

③ 清密

npm:npm ci --ignore-scripts --audit signaturesyarn:yarn install --ignore-scriptspnpm:pnpm install --ignore-scripts(pnpm 默认会弹窗让你审脚本,最安全)

再加一道 Socket 插件

npx socket@latest scan

npm 的“便利”是把双刃剑:
一个 postinstall 就能让任何开发者的电脑变成矿机、泄密器、C2 跳板。

开发者自己的手指——别一键 npm i;自动化审查工具——让机器先跑,确认无毒再装。

下次想 npm i 之前,先问自己三遍:我信得过这个包吗?我锁版本了吗?我关了脚本吗?

来源:不秃头程序员

相关推荐