npm包被集体下毒!80+热门库沦陷,OpenAI员工电脑也被黑

admin 2026-05-19 05:57:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 2026年5月发现名为minishai-hulud的供应链蠕虫大规模感染npm生态,波及TanStack全系列等80多个热门包,并导致OpenAI员工设备被黑。该蠕虫通过劫持维护者账号、在postinstall脚本植入后门实现自我传播。文档提供了包含检查受影响包、锁定依赖版本、扫描系统异常的自查清单,并给出开发者生存法则与企业安全建议。 综合评分: 95 文章分类: 供应链安全,漏洞预警,解决方案,安全运营,web安全


cover_image

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.jsonyarn.lockpnpm-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 员工电脑也被黑》

评论:0   参与:  0