TanStack 供应链攻击:2026 年 5 月 GitHub Actions 生态系统曝出严重漏洞
TL;DR
TanStack 供应链攻击:当“受信任”的软件反戈一击
2026 年 5 月 11 日,开发者世界迎来了一次沉重的警钟。在 UTC 时间 19:20 到 19:26 之间,现代 Web 开发的基石——TanStack npm 命名空间被名为 TeamPCP 的威胁组织劫持。在短短六分钟内,他们向 42 个不同的 @tanstack/* 软件包推送了 84 个恶意版本。
这并非普通的“拼写抢注”(typo-squatting)攻击。攻击者不仅是上传了恶意代码,更是直接攻破了构建流水线。通过利用 GitHub Actions 中的漏洞,他们将一个窃取凭据的蠕虫病毒直接注入到了供应链中。最令人震惊的是:每一个恶意软件包都带有有效的 SLSA(软件制品的供应链级别)来源证明。
信任的幻觉
这是软件安全领域的一个分水岭。我们首次看到恶意 npm 软件包携带了有效的 SLSA Build Level 3 来源证明。请仔细思考这一点:构建过程被彻底破坏,以至于安全证明(本应证明软件包安全性的机制)在技术上是准确的,但本质上却是恶意的。
正如 TanStack 发布的事后调查报告 所详述,该代码旨在用户运行 npm install 时立即触发。一旦激活,它便会搜寻一切:AWS 密钥、GCP 凭据、Kubernetes 配置、GitHub 令牌和 SSH 密钥。随后,它通过 Session/Oxen 网络悄悄地将这些数据外传。如果你当时正在运行这些软件包,你的机密信息实际上正被实时广播给攻击者。
攻击剖析
TeamPCP(你可能通过其别名 DeadCatx3、PCPcat 或 ShellForce 了解他们)并未止步于 TanStack。他们部署了“Mini Shai-Hulud”蠕虫的变体。在五小时内,感染范围扩散至 npm 和 PyPI 上的 170 多个软件包。
npm 供应链攻击事后分析 澄清道,虽然 npm 账户本身不一定被黑,但攻击者通过 GitHub Actions 的 pull_request_target 工作流找到了后门。他们实际上诱骗了 CI/CD 流水线,让其代为执行恶意操作。
| 指标 | 详情 |
|---|---|
| 事件日期 | 2026 年 5 月 11 日 (19:20–19:26 UTC) |
| 受影响软件包 | 42 个 @tanstack/* 软件包 |
| 恶意版本 | 总计 84 个版本 |
| 来源证明状态 | 有效的 SLSA Build Level 3(已遭破坏) |
| 外传方式 | Session/Oxen 网络 |
| 主要威胁组织 | TeamPCP / DeadCatx3 |
传统安全为何失效
多年来,我们一直告诉开发者要“检查来源”并“验证签名”。但当构建环境本身就是谎言时,该怎么办?
由于破坏发生在源头,自动化信任机制完全按照其编程逻辑运行:它们验证了一个恰好包含恶意载荷的“受信任”构建。这不仅仅是 TanStack 的问题。我们在近期针对 Trivy、Checkmarx KICS、LiteLLM 和 Bitwarden CLI 的攻击中也看到了类似的模式。很明显,我们正面临一场针对 CI/CD 基础设施核心的高级别协同攻击。
如果你使用了这些受感染的版本,官方安全公告 的建议很明确:做最坏的打算。TeamPCP 正与 Vect 勒索软件组织合作,这无疑是雪上加霜。他们不仅在窃取数据,还在收集凭据,以便后续进行全面的破坏性攻击。
清理工作:你现在需要做什么
如果你的 CI/CD 流水线涉及这些软件包,你需要假设整个环境已被攻破。现实情况如下:
- 彻底清理(或至少进行审计): 将所有接触过这些软件包的 CI/CD 环境或开发机器视为犯罪现场。
- 轮换所有凭据: 不要仅仅更改密码。轮换所有可能被这些机器访问的 API 密钥、云令牌和 SSH 密钥。假设它们已经落入攻击者手中。
- 追踪痕迹: 检查你的 CI/CD 日志,查看 5 月 11 日左右是否有任何
npm install活动或异常的出站网络流量。 - 清理依赖项: 更新至 官方软件包注册表跟踪 中列出的安全版本。不要假设你当前的 lockfile 是安全的。
- 防范横向移动: 由于这些攻击者与勒索软件组织有关联,请密切关注内部网络。他们正试图从构建服务器向生产环境渗透。
自动化的脆弱性
“Mini Shai-Hulud”蠕虫严酷地提醒我们,现代构建流水线是由脆弱的信任网维系的。通过瞄准 GitHub Actions,TeamPCP 有效地绕过了我们十年来建立的边界防御。我们一直假设,如果构建环境是自动化的且经过“证明”的,它就一定是安全的。此次事件证明,这种假设是一个危险的谬论。
对于想要深入研究的人,TanStack router 仓库的问题追踪器 中包含关于 OIDC 令牌提取过程的深度解析。阅读后会让人清醒地认识到,流水线被操纵是多么容易。
随着调查的深入,给开发者社区的信息很简单:停止盲目信任流水线。我们已经到了无法再假设构建环境完整性的地步——它必须经过验证、审计,并以我们对待代码本身的怀疑态度来对待。保持警惕,因为威胁组织绝不会停下脚步。