文章总结: 2026年5月发现名为minishai-hulud的供应链蠕虫大规模感染npm生态,波及TanStack全系列等80多个热门包,并导致OpenAI员工设备被黑。该蠕虫通过劫持维护者账号、在postinstall脚本植入后门实现自我传播。文档提供了包含检查受影响包、锁定依赖版本、扫描系统异常的自查清单,并给出开发者生存法则与企业安全建议。 综合评分: 95 文章分类: 供应链安全,漏洞预警,解决方案,安全运营,web安全
npm 包被集体下毒!80+ 热门库沦陷,OpenAI 员工电脑也被黑
RCS-TEAM安全团队 RCS-TEAM安全团队
RCS-TEAM
2026年5月18日 09:24 北京
在小说阅读器读本章
去阅读
npm 包被集体下毒!80+ 热门库沦陷,OpenAI 员工电脑也被黑——这个供应链蠕虫太可怕了
你以为装了开源库就安全?这次连 OpenAI 自己的开发者都没跑掉。
事情到底有多大?
先说结论:这不是某一个小众库出了问题,而是你每天都在用的那些 npm 包,被人批量投毒了。
从 5 月中旬开始,安全研究人员发现了一个叫 Mini Shai-Hulud 的供应链蠕虫,疯狂感染 npm 和 PyPI 生态中的热门开源项目。截至目前,已有 80 多个 npm 包和多个 PyPI 包被确认感染,受害者包括:
▪TanStack 全系列(React Query、Router、Form 等,周下载量超 5000 万次)
▪Mistral AI 官方 SDK(AI 开发者都在用)
▪Guardrails AI
▪多个前端框架和工具库
最让人后背发凉的是:OpenAI 自己的两台员工 macOS 设备,就是通过这些被感染的 npm 包被入侵的。
没错,连 OpenAI 的安全团队都没拦住。
这个蠕虫是怎么运作的?
Mini Shai-Hulud 不是传统意义上的”黑客攻入服务器然后改代码”。它的攻击链是这样的:
第一步:劫持维护者账号
攻击者通过钓鱼或凭证泄露,拿到了 TanStack 等项目的 npm 维护者权限。这一步很关键——他们不需要攻破代码仓库,只需要拿到发布权限。
第二步:发布带后门的版本
在正常的 npm 包更新中,混入恶意代码。具体来说:
▪在 postinstall 脚本中嵌入恶意执行逻辑
▪利用 package.json 的 scripts 字段,在开发者执行 npm install 时自动运行
▪恶意代码会下载第二阶段 payload,建立持久化后门
第三步:蠕虫式自我传播
这才是最可怕的地方——感染一台机器后,蠕虫会尝试寻找该机器上其他开源项目的维护者凭证,然后继续感染更多包。
你的电脑被感染 → 蠕虫扫描 ~/.npmrc、环境变量、SSH 密钥 → 找到其他 npm 包的发布权限 → 向更多包注入恶意代码 → 下一个开发者 install 时被感染 → 循环往复
这就是为什么叫”蠕虫”——它能自我复制、自我传播,不需要攻击者手动操作。
OpenAI 为什么中招?
根据 OpenAI 官方声明和 The Hacker News 的报道:
①OpenAI 的两名开发者在日常工作中 npm install 了被感染的 TanStack 包
②恶意代码在他们的 macOS 设备上执行
③攻击者获取了部分内部数据(OpenAI 强调用户数据未受影响)
④OpenAI 紧急要求所有 macOS 用户更新安全配置
注意:OpenAI 用户的数据是安全的,但开发者的工作环境被渗透了。 这意味着攻击者可能获取了内部代码、API 密钥、开发工具链等敏感信息。
你的项目安全吗?3 分钟自查清单
不管你是前端、后端还是全栈,立刻做以下几件事:
1. 检查你是否用了受影响的包
# 在项目根目录执行,检查 package.json 中是否包含以下包:cat package.json | grep -E "@tanstack|tanstack"# 检查全局安装的包 npm list -g --depth=0 | grep -E "@tanstack|tanstack"
受影响的包包括(但不限于):
▪@tanstack/react-query
▪@tanstack/router
▪@tanstack/form
▪@tanstack/store
▪以及 TanStack 旗下 80+ 个其他包
2. 锁定依赖版本,禁止自动更新
# 使用 shrinkwrap 锁定精确版本 npm shrinkwrap # 或者在 package.json 中使用精确版本(去掉 ^ 和 ~)# ❌ 错误写法:"@tanstack/react-query": "^5.0.0"# ✅ 正确写法:"@tanstack/react-query": "5.62.0"
3. 检查 npmrc 配置
# 检查 ~/.npmrc 文件内容cat ~/.npmrc # 确保没有不明来源的 token# 如果有你不认识的 token,立即删除并在 npmjs.com 上撤销
4. 检查开发机是否已被感染
macOS 用户特别注意:
# 检查是否有异常的 cron 任务 crontab -l # 检查 LaunchAgents 中的异常项ls -la ~/Library/LaunchAgents/ ls -la /Library/LaunchAgents/ # 检查是否有异常的 Node 进程 ps aux | grep node # 检查最近修改的可执行文件(7 天内) find ~ -name "*.sh" -mtime -7 -type f find ~ -name "*.py" -mtime -7 -type f
Linux 用户:
# 检查 crontab crontab -l sudo crontab -l # 检查 systemd 服务 systemctl list-units --type=service --state=running | grep -v "^UNIT"# 检查 /tmp 下的可疑文件ls -la /tmp/ | grep -E '\.(sh|py|js|bin)$'
5. 使用 npm audit 扫描已知漏洞
npm audit npm audit fix
供应链攻击越来越频繁,我们该怎么办?
说实话,Mini Shai-Hulud 不是第一个,也不会是最后一个。回顾 2026 年以来的供应链攻击:
| 时间 | 事件 | 影响 | | — | — | — | | 2026 年 3 月 | 首次发现 Shai-Hulud 蠕虫 | 多个 PyPI 包被感染 | | 2026 年 4 月 | Shai-Hulud 变种出现 | 传播范围扩大 | | 2026 年 5 月 | Mini Shai-Hulud 攻击 TanStack | 80+ npm 包沦陷,OpenAI 中招 |
趋势非常明显:供应链攻击正在从”偶尔发生”变成”常态化威胁”。
给开发者的 5 条生存法则
① 不要盲目信任 npm install
每次安装依赖前,看一眼 package.json 里的版本变更。如果某个包突然跳了大版本,先查 changelog。
② 使用锁文件(lock file)
package-lock.json、yarn.lock、pnpm-lock.yaml——一定要提交到版本控制,确保团队成员和 CI/CD 环境安装完全相同的依赖。
③ 限制 npm 发布权限
如果你维护开源项目:
▪开启 2FA(双因素认证)
▪使用 CI/CD 自动发布,不要手动 npm publish
▪定期审计 collaborator 列表
④ 使用 SCA(软件成分分析)工具
# Snyk 扫描 npx snyk test# OWASP Dependency Check npx dependency-check --project "my-project" --scan . # GitHub Dependabot(如果代码在 GitHub)# Settings → Security → Dependabot alerts → Enable
⑤ 最小权限原则
开发机上不要使用 root/admin 权限运行 npm install。使用 nvm/fnm 管理 Node 版本,避免全局安装。
给企业安全团队的建议
如果你负责企业安全,这件事应该让你睡不着觉:
①建立内部 npm 镜像/代理(如 Verdaccio、Artifactory),所有依赖先过安全扫描再放行
②CI/CD 流水线中加入依赖审计,任何新依赖或版本变更必须经过审批
③对开发人员进行供应链安全培训——很多开发者根本不知道 postinstall 脚本能做什么
④监控开发机异常行为——如果某台开发机突然往外连陌生的 IP,别犹豫,先断网
⑤考虑使用 Sigstore/cosign 验证包签名(npm 正在推进签名机制,关注进展)
写在最后
OpenAI 有专门的安全团队,有两百多名安全工程师,他们的开发者还是被一个 npm 包黑了。
这说明什么?供应链安全不是”加了防火墙就没事”的事情。 你的每一行 npm install,都是在信任一个你可能根本不认识的开源维护者。
这不是反对开源——开源很好,没有开源就没有今天的互联网。但信任不等于盲目。
下次你执行 npm install 之前,不妨多想一秒:这个包,真的安全吗?
📌 本文参考资料:
▪SecurityWeek: “OpenAI Hit by TanStack Supply Chain Attack” (2026-05-16)
▪The Hacker News: “TanStack Supply Chain Attack Hits Two OpenAI Employee Devices” (2026-05-16)
▪Wiz: “Mini Shai-Hulud Strikes Again: TanStack + more npm Packages Compromised” (2026-05-16)
▪The Record: “OpenAI asks macOS users to update after TanStack npm supply chain attack” (2026-05-16)
▪Endor Labs: “Shai-Hulud compromises the @tanstack ecosystem: 80+ packages compromised” (2026-05-16)
🔐 数据织梦 · 每日安全速递 — 帮你守住每一行代码的安全底线
SECURITY · RCS-TEAM
关注 RCS-TEAM 安全团队
聚焦安全研究、漏洞分析、攻防技术与行业观察 持续输出高质量安全内容
长按识别二维码,立即关注
点击上方公众号名片关注
微信生态内建议同时插入官方“公众号名片”组件,提升关注转化
COMMUNITY · SECURITY GROUP
加入 RCS-TEAM 安全交流群
想继续交流漏洞分析、攻防实践和文章里的细节补充,欢迎扫码进群。
群内会不定期分享复现思路、工具经验和最新讨论。
扫码即可加入交流,二维码失效可在后台回复「加群」。
实战问题、漏洞思路、工具踩坑都可以在群里继续聊 也欢迎直接反馈你想看的后续选题
扫码加入交流群
若二维码失效或群满,请在后台回复「加群」
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:RCS-TEAM RCS-TEAM安全团队 RCS-TEAM安全团队《npm 包被集体下毒!80+ 热门库沦陷,OpenAI 员工电脑也被黑》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论