🚨 TanStack npm 攻击是如何实际发生的:
🚨 TanStack npm 攻击是如何实际发生的:
- 攻击者向 TanStack 仓库提交了一个看起来正常的拉取请求(#7378)。
- GitHub 自动对该 PR 运行了 CI 测试。
- PR 中的代码在测试运行期间窃取了工作流的 GitHub Actions Cache 写入令牌。
- 攻击者使用该令牌在共享构建缓存中植入恶意文件。随后可以关闭该 PR。恶意缓存会保留。
- 官方发布工作流随后从缓存中拉取,将恶意文件嵌入构建中,并签名并向 npm 发布了 84 个恶意软件包版本。
安全公告 — TanStack npm 软件包
供应链攻击影响 42 个
@tanstack
/* 软件包(总计 84 个版本),这些版本于今日早些时候大约 UTC 时间 19:20 和 19:26 发布到 npm。每个软件包有两个恶意版本。
状态:活跃 — 软件包已被弃用,npm 安全团队已介入,发布路径正在关闭。
严重性:高 — 有效载荷会窃取 AWS、GCP、Kubernetes 和 Vault 凭据、GitHub 令牌、.npmrc 内容以及 SSH 密钥。
如果您在今日 UTC 时间 19:20 至 19:30 之间安装了任何
@tanstack
/* 软件包,请将主机视为可能已被入侵:
• 立即轮换云、GitHub 和 SSH 凭据
• 审计过去几小时的云审计日志
• 固定到之前已知的安全版本,并从干净的 lockfile 重新安装
检测 — 恶意清单包含:
"optionalDependencies": {
"
@tanstack/setup
": "github:tanstack/router#79ac49ee…"
}
任何包含此条目的版本均已被入侵。有效载荷通过 git 解析的可选依赖项传递,其 prepare 脚本会运行 router_init.js(约 2.3 MB,伪装成每个 tarball 的包根目录)。
由于大多数受影响软件包存在第三方依赖者,npm 政策阻止了其取消发布。所有 84 个版本均将被弃用并附带安全警告,npm 安全团队已介入以在注册表级别拉取 tarball。
完整技术分析、完整软件包和版本列表以及滚动状态更新:
https://github.com/TanStack/router/issues/7383
感谢安全研究人员负责任地披露。
这次攻击利用了 GitHub Actions 缓存投毒。
有效载荷部署在此处:https://github.com/TanStack/router/pull/7378
看起来它在此处引爆:https://github.com/TanStack/router/actions/runs/25613093674/job/75429692202#step:26:2

文章作者:大神K
版权说明:本文为原创内容,转载请注明出处。