TanStack(React 与 JavaScript 生态中非常流行的一组库)是这次事件最受关注的受害者之一。
官方事后报告显示:
@tanstack/* npm 包 这些版本被植入了 凭证窃取型恶意代码,目标包括开发者机器和 CI/CD 环境。
问题的严重性在于:很多 TanStack 包在 JavaScript 社区中 每周下载量达数百万次。一旦被篡改版本被依赖安装,就可能迅速进入大量项目的构建流程。
后续安全研究发现,TanStack 只是更大规模攻击的一部分。整体统计显示:
大部分恶意发布集中在 2026 年 5 月 11–12 日的 48 小时内。
与许多供应链攻击不同,这次攻击 并没有直接窃取维护者的 npm 发布凭证。
攻击者的目标是 自动化发布系统本身。
TanStack 的复盘报告显示,攻击链利用了 GitHub Actions 工作流中的多个弱点:
pull_request_target 工作流模式攻击流程大致如下:
因为发布操作是通过 项目自己的 CI/CD 流水线完成的,这些恶意软件包看起来完全合法,甚至带有正常的构建签名或 provenance 信息。
这让恶意版本很难从正常更新中被识别出来。
被篡改的软件包中包含一段设计成 自传播供应链蠕虫 的代码。
当开发者安装这些依赖时,恶意代码可能通过:
preinstall)下载并运行额外 payload。
一旦运行,恶意程序会尝试:
这种方式可以让攻击 在开发者机器、CI 系统和开源项目之间横向传播。
由于包管理器在安装依赖时本身就会执行脚本,只要安装了受感染的版本,就可能触发恶意代码。
研究人员发现,该恶意代码会扫描系统中大量常见路径,以寻找敏感凭证。
主要目标包括:
一些分析报告显示,恶意程序会扫描 上百个文件路径 来寻找密钥或配置文件。
因此,安全团队普遍建议:
任何安装过受感染版本的软件环境,都应视为可能已被攻陷,并立即轮换所有凭证。
由于 TanStack 库在开发生态中被广泛使用,一些人担心它可能影响下游平台和服务。
OpenAI 表示,在调查后没有发现任何用户数据被访问或泄露的证据。
这一声明旨在回应外界关于受影响依赖可能导致客户数据暴露的猜测。
Mini Shai‑Hulud 事件展示了供应链攻击的一些新趋势:
1. 攻击自动化流程,而不是账户
攻击者直接劫持 CI/CD 发布流程,而不是窃取维护者登录凭证。
2. 恶意包也可能“带签名”
因为是合法流水线发布,恶意版本仍然可能拥有可信的构建来源。
3. 跨生态传播
攻击同时影响 npm 与 PyPI,大幅扩大潜在影响范围。
4. 类蠕虫传播
恶意代码会自动窃取凭证并发布新的感染版本。
这些特点使它成为 2026 年最严重的开源供应链事件之一。
这次事件也促使许多团队重新审视 DevSecOps 的安全实践。
把依赖安装当作代码执行
安装软件包时可能运行脚本或执行导入代码。
及时轮换凭证
任何安装过受感染版本的系统都应轮换所有密钥。
加固 CI/CD 工作流
限制 GitHub Actions token 权限,并避免使用风险较高的工作流模式(例如 pull_request_target)。
审计依赖版本
检查是否在 2026 年 5 月的攻击窗口安装过恶意版本。
监控构建与发布流程
异常依赖安装、未知网络请求或未经授权的发布行为,都可能是供应链攻击信号。
今天的软件开发离不开共享依赖和自动化构建系统。
Mini Shai‑Hulud 的教训是:这些便利工具同样可能成为攻击传播的高速通道。
当攻击者控制了构建流水线或开发环境时,他们就能通过受信任的软件渠道,把恶意代码传播到成千上万个项目中。
因此,越来越多的安全团队开始把 CI/CD 管道、依赖管理和开发者环境 视为关键安全边界,而不仅仅是开发效率工具。