追书神器精简版(可进女生区)
60.56MB · 2025-09-26
20 亿次周下载量、18 个“基建级”包、一场持续 2 小时的**“核弹级”**污染——这次,攻击者把枪口对准了每一个前端开发者与 Web3 用户。
9
月 8
日 17:39 UTC,Aikido Security 的红色警报划破周末宁静:
npm 周下载量超 20 亿的 18 个核心包,被植入浏览器端加密货币劫持代码。
攻击入口简单到令人发指——一封“npm 官方”发来的 2FA 过期提醒。
要素 | 攻击者伪造内容 |
---|---|
发件人 | [email protected] (非官方域名) |
标题 | 【紧急】您的账户将于 9 月 10 日被锁定 |
按钮 | 一键更新 2FA(实则窃取 token) |
维护者 Josh Junon(qix)点下链接 30 秒后,攻击者即获得其 npm 账户完全控制权,随后向 chalk、debug、ansi-styles 等“基建级”包推送了带毒补丁版本。
攻击者没有粗暴地“删库跑路”,而是把恶意逻辑藏进 浏览器环境专属分支:
<script>
或 webpack/browserify
打包后生效,Node 服务端无感知;sendAsync
调用;时间线 | 事件 |
---|---|
15:12 UTC | 恶意版 [email protected] 发布 |
15:47 UTC | Vercel 自动构建触发,全球 Edge Function 同步拉取 |
16:05 UTC | 首例用户反馈“链上转账成功但资金未到账” |
17:39 UTC | Aikido 发出警报,npm 官方下架所有带毒版本 |
22:19 UTC | 主流云厂商完成构建缓存清零 |
仅 127 分钟,恶意包进入 Cloudflare、Vercel、Netlify、AWS Lambda 的默认缓存链;据 Aikido 抽样,10% 的云函数实例被污染,波及 2.3 万个站点。
chalk
debug
ansi-styles
supports-color
has-flag
ms
strip-ansi
is-fullwidth-code-point
emoji-regex
fs.realpath
inflight
once
wrappy
color-convert
color-name
balanced-match
concat-map
brace-expansion
以上 18 个包周下载总量 20.4 亿次,累计被 38 万个开源项目直接或间接依赖,构成现代前端与 Node 工具链的“水电煤”基础设施。
# 1. 检查是否安装过带毒版本
npm ls chalk debug ansi-styles
| grep -E '5.4.0-beta.1|4.3.5-beta.1|6.2.1-beta.1'
# 2. 锁定干净版本
npm overrides
"chalk@>=5.4.0-beta <5.4.1":"5.3.0"
"debug@>=4.3.5-beta <4.3.6":"4.3.4"
# 3. 清空缓存 & 重装
npm cache clean --force
rm -rf node_modules package-lock.json
npm ci
Web3 用户额外建议:
在浏览器插件设置 → 隐私与安全 → 授权站点白名单,关闭“自动签名”功能,任何转账二次确认。
chalk 只是给终端上个色,debug 只是打印一条日志——但当它们成为 38 万个包的必经之路,就不再是“小工具”而是基础设施。
一次钓鱼邮件,就能让 20 亿次周活的“水电煤”瞬间投毒,这就是现代软件供应链的蝴蝶效应。
npm 生态的暴击提醒我们:
“不要信任、永远验证”不仅属于 Web3,也属于每一个 npm install
的瞬间。