井底圈小蛙
关注科技圈

npm爆发大规模供应链攻击:TanStack生态遭投毒,攻击者植入“自毁型”蠕虫

这次攻击发生在 UTC 时间 2026 年 5 月 11 日 19:20 至 19:26 之间。攻击者并没有直接盗取 TanStack 团队成员的 npm 账号,而是通过一套精密的“组合拳”绕过了安全防线。

根据 TanStack 官方发布的事故复盘报告,攻击者利用了 GitHub Actions 中 pull_request_target 工作流的信任漏洞。通过向 TanStack/router 提交一个看似无害的 PR,攻击者成功地将恶意代码注入到了 GitHub Actions 的缓存(Cache)中。

当维护者 Manuel 在 19:15 合并了一个正常的 CSS 修复补丁时,自动化发布流程启动并读取了被污染的缓存。恶意脚本在构建环境中通过提取内存中的 OIDC 令牌,直接获得了向 npm 官方仓库发布版本的权限,从而在短短 6 分钟内发布了 84 个包含毒素的受影响版本。

核心杀伤力:窃取、传播与“同归于尽”

安全专家及 TanStack 团队在调查中确认,受影响的包被植入了一个约 2.3 MB 的混淆脚本 router_init.js。其行为具有极强的破坏性:

1. 全方位凭证窃取

一旦开发者或 CI 环境运行了 npm install,恶意脚本会立即扫描环境,收集包括 AWS/GCP 凭证、Kubernetes 令牌、SSH 私钥、GitHub 访问令牌以及包含 npm 认证信息的 ~/.npmrc 文件。

2. 蠕虫式自我传播

这是一种典型的“以战养战”策略。脚本会利用窃取到的权限,自动在 npm 上搜索受害者拥有维护权限的其他项目,并将恶意代码注入后重新发布。这意味着感染会像病毒一样在开发者社区中链式传播。

3. 报复性自毁机制

这是本次攻击中最具毒辣色彩的技术细节。攻击者在 Linux 和 macOS 系统中安装了一个持久化守护进程。该进程会持续监控已窃取 GitHub 令牌的有效性。一旦开发者发现泄露并撤销了令牌,该脚本将视为“被发现”的信号,随即触发 rm -rf ~/ 命令,强制清空用户的家目录作为报复。

应急响应与防护建议

TanStack 创始人 Tanner Linsley 及其团队在收到来自 StepSecurity 的安全研究员 ashishkurmi 的预警后,在 20 分钟内迅速做出了响应。目前,所有受影响的版本均已在 npm 仓库中被标记为弃用(Deprecated)。

在此,圈小蛙提醒广大开发者,如果你在 2026 年 5 月 11 日左右安装或更新过 @tanstack/* 系列包(特别是 Router 和 History 相关包),请务必执行以下操作:

  • 检查版本:确认是否安装了受影响的版本(受影响包列表见 GitHub Issue)。
  • 断网检查:在撤销任何令牌之前,先断开网络并检查系统是否存在异常的守护进程,防止触发自毁脚本。
  • 强制轮换:立即轮换所有可能接触到的云平台凭证、SSH 密钥和 API 令牌。
  • 清理缓存:清理本地及 CI 环境的 npm 和 GitHub Actions 缓存。

这次事件再次给开源社区敲响了警钟:即使是拥有严密工作流的大型项目,也可能在 GitHub Actions 的细微配置偏差上翻车。


本报道由 圈小蛙(qxwa.com) 科技资讯站特约撰稿。🐸️

圈小蛙现已开通Telegram。单击此处加入我们的频道 (@quanxiaowa)并随时了解最新科技圈动态!

除特别注明外,本站所有文章均系根据各大境内外消息渠道原创,转载请注明出处。
文章名称:《npm爆发大规模供应链攻击:TanStack生态遭投毒,攻击者植入“自毁型”蠕虫》
文章链接:https://www.qxwa.com/npm-supply-chain-attack-tanstack-malware-shai-hulud.html
分享到: 生成海报

评论 抢沙发

科技圈动态,尽在圈小蛙

联系我们关注我们