10+年产品经理专注分享AI 工具、AI 资讯、AI Coding、Vibe Coding与下一代产品创新,按 Ctrl+D 收藏我们
关于我 留言板 标签云 排行榜

苏米客

  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
    • AI智能体
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
  • 登录
  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
    • AI智能体
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
当前位置: 首页 » AI最新动态

npm供应链攻击事件:TanStack包被投毒,GitHub密钥面临泄露风险

4月前 AI最新动态 1222 0

如果你使用 npm 安装过 TanStack 系列的包,需要立即检查——在 2026年5月11日晚间的短时间内,AWS 密钥、GitHub Token、SSH 私钥可能已经被窃取。更危险的是,攻击者设置了一个「死亡开关」:一旦你撤销 GitHub Token,就会触发 rm -rf ~/,直接清空你的主目录。

事件概述

2026年5月11日北京时间凌晨3点20分,一场精心策划的供应链攻击悄然启动。攻击者发布了 84 个恶意版本,覆盖 42 个 @tanstack/* npm 包。只要在那段时间运行过 npm install,机器就可能被植入后门。

被攻击的包包括前端开发者熟悉的 @tanstack/react-router、@tanstack/query、@tanstack/history 等。TanStack 系列每周下载量超过千万,广泛应用于全球无数公司的生产系统中。

受影响的 npm 包

三环连环攻击

TanStack 官方的事后复盘显示,这不是单一漏洞的利用,而是三个已知漏洞的环环相扣。

第一环:伪造身份混入代码

攻击者注册 GitHub 账号 zblgg,从 TanStack/router fork 仓库后向官方仓库提交了一个 PR,标题为「WIP: simplify history build」,看起来像普通的代码优化。

关键问题在于,这个 PR 中隐藏了一个 vite_setup.mjs 文件,里面包含约 3 万行混淆过的 JavaScript 代码。提交者身份信息被伪造为 claude。

第二环:毒化 GitHub Actions 缓存

TanStack 的 bundle-size.yml 工作流使用了 pull_request_target 触发器。这个触发器有一个危险特性:它会在 base 仓库的权限下运行来自 fork 的代码,并且能写入 base 仓库的 Actions 缓存。

攻击者的 PR 触发了该工作流,执行了恶意代码,将毒化的 pnpm 存储写入缓存。缓存 key 精确匹配了发布工作流 release.yml 会使用的那个 key——就像在面粉厂的原料仓里掺入毒药,等着下游的面包厂使用。

第三环:从内存中提取 OIDC Token

当 TanStack 开发者正常合并 PR 触发 release.yml 时,被毒化的缓存被恢复到 CI 运行环境中。恶意代码通过 /proc/*/cmdline 找到 GitHub Actions Runner 进程,读取 /proc/*/maps 和 /proc/*/mem,直接从内存中提取 OIDC token。

然后攻击者用这个 token 直接向 npm registry 发包,完全绕过了正常的发布流程。官方复盘中提到:这个内存提取脚本「是来自 2025年3月 tj-actions/changed-files 事件的逐字照抄版本,连代码注释都没改」。

三环连环攻击示意图

恶意代码行为

一旦有人在受感染环境中运行 npm install,router_init.js(2.3MB 混淆脚本)就会在安装过程中自动执行。

凭证窃取

恶意脚本会收集以下凭证:

  • AWS IMDS / Secrets Manager 凭证
  • GCP 元数据服务 Token
  • Kubernetes service account Token
  • Vault Token
  • ~/.npmrc 中的 npm 发布密钥
  • GitHub Token(环境变量、gh CLI、.git-credentials)
  • SSH 私钥

数据外泄

数据通过 Session/Oxen 加密通讯网络传输(filev2.getsession.org、seed{1,2,3}.getsession.org),采用端对端加密,没有中央服务器可以封锁。

蠕虫传播

脚本会枚举受害者在 npm 上维护的所有包,自动将恶意代码注入并发布。这就是为什么此次攻击从 TanStack 蔓延到了 OpenSearch Python SDK(130万周下载)、mistralai Python 包、guardrails-ai 等多个项目。

蠕虫传播示意图

数据外泄路径

死亡开关

安全研究员 carlini 在 GitHub Issue 中发现了最危险的细节:脚本在 Linux 系统中安装 systemd 用户服务,在 macOS 中安装 LaunchAgent,每 60 秒检查一次被盗的 GitHub Token 是否仍然有效。

一旦你撤销 Token,立刻执行 rm -rf ~/。

死亡开关警告

如何判断是否中招

第一步:运行快速扫描工具

社区开发者 Rohit Tyagi 制作了扫描工具:

npx supply-chain-attack

该工具会检查本机是否安装了已知受感染的包版本、npm 缓存中是否有痕迹、全局安装状态以及可疑文件。

第二步:手动检查 package.json

在任何 @tanstack/* 包的 package.json 中,如果看到以下内容即为感染标志:

"optionalDependencies": {
  "@tanstack/setup": "github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c"
}

可以用以下命令验证(npm pack 不会执行安装脚本,是安全操作):

npm pack @tanstack/@
tar -xzf *.tgz
cat package/package.json | grep -A3 optionalDependencies
ls -la package/router_init.js

第三步:检查持久化后门

Linux 用户:

ls ~/.config/systemd/user/ | grep gh-token-monitor
systemctl --user status gh-token-monitor

macOS 用户:

ls ~/Library/LaunchAgents/ | grep com.user.gh-token-monitor

受影响时间窗口: 2026年5月11日 19:20 到 19:30 UTC(北京时间5月12日凌晨3:20–3:30),仅在这段时间内运行过 TanStack 包的 npm install 才可能中招。

中招后的处理步骤

⚠️ 重要:必须先处理持久化后门,再撤销 Token。如果先撤销 GitHub Token,会触发 rm -rf ~/。

  1. 找到并停止 gh-token-monitor 服务
  2. 删除相关服务文件
  3. 轮换所有凭证:
  4. GitHub Token
  5. AWS / GCP / Kubernetes 凭证
  6. npm Token(~/.npmrc)
  7. SSH 私钥
  8. 审计过去几小时的云服务操作日志,检查异常调用
  9. 用干净的 lockfile 重新安装依赖

npm 包维护者注意: 检查你的包是否也被蠕虫感染——如果机器中招,攻击者可能已经用你的凭证发布了新版本。

中招检查清单

事件启示

TanStack 官方复盘中的一句话令人深思:

「检测是靠外部的。我们是从第三方那里知道自己被攻击的。」

一个每周数千万下载量的顶级开源项目,被攻击 20 分钟后才靠外部研究员发现。

此次攻击使用的每种技术都是公开资料:pull_request_target 滥用问题在 2023 年已被研究透彻,cache poisoning 攻击在 2024 年有完整分析,内存提取 OIDC token 的脚本是 2025 年事件的原版照抄。攻击者没有发明任何新技术,只是将三个已知漏洞组合在一起。

对开发者而言,npm install 这个每天运行无数次的命令背后,存在相当大的供应链攻击面。社区建议的防护措施包括:

  • 使用 pnpm 并开启 minimumReleaseAge: 7d,让新发布的包等待 7 天再安装
  • 定期审计依赖
  • 监控自己的发布管道

但此次攻击从发布到被发现仅用了 20 分钟,7 天等待期也不够。更根本的防护仍需依赖持续的审计和监控。

参考链接

  • TanStack 官方事后复盘
  • GitHub 安全跟踪 Issue
  • Socket Security 攻击追踪
  • StepSecurity 技术分析
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
未经允许不得转载:npm供应链攻击事件:TanStack包被投毒,GitHub密钥面临泄露风险
#npm #供应链安全 #TanStack #GitHub #开发安全 
收藏 1
Advanced-PassGen:跨平台密码生成器,支持批量导出纯文本/CSV/JSON
HTML在Agent生态中崛起:为什么它正在取代PPT成为演示新标准
推荐阅读
  • GPT-5 难产,但开源了 gpt-oss-120b 与 gpt-oss-20b 模型
  • GPT-5.6 宣而不发,Fable 5 归来再禁:出口管制下的模型封锁
  • cc-weixin:微信 ClawBot 刚开放,在微信里跑 Claude Code ,让 AI 编程实时对话
  • Cursor 限制国内使用 Claude 等模型解决方案!
  • Gemini 3.1 Flash TTS 实测:3 个避坑指南 +2 个 Audio Tags 神技详解
评论 (0)
请登录后发表评论
分类精选
Cursor 限制国内使用 Claude 等模型解决方案!
34211 1年前
学生/非学生:如何申请Cursor Pro免费会员,如何通过SheerID验证快速激活全攻略
30822 1年前
即梦AI图片2.1:一句话快速生成带中文的海报图,免费AI文生图、视频工具、AIGC创作工具
23528 1年前
注意!Cursor单设备登录新规:一个账户最多可以3台设备登录,且限制单点登录
22968 1年前
腾讯ima知识库skills上线:教你如何把腾讯 IMA 知识库接入 OpenClaw 一步打通
21300 6月前
国产大模型横向对比:Kimi K2.6、GLM-5.1、Qwen3、MiniMax M2 四大模型选型指南
19025 5月前
字节推出Trae CLI :Claude Code 和 Gemini CLI的国产平替 ?手把手教你如何安装Trae Agent
18634 1年前
Trae国内版,搭载 doubao-1.5-pro、DeepSeek R1/V3模型,对比 Trae 国际版有什么不同
18436 1年前
DeepSeek宣布:降价,最高降价75%!别错过这个优惠时段,赶紧充值
18211 1年前
刚刚!Cursor风控又加强了,可能是因为这个原因!
16622 1年前

文章目录

关于苏米客
分类排行
1 Claude Sonnet 5.5 发布:性能逼近 Opus 5.5,价格减半
2 Qoder实测:2小时生成293个测试全绿,Credits一分不扣
3 OpenAI DevDay前瞻:常驻型AI助手"O"曝光,关掉ChatGPT它还在替你干活
4 腾讯Hy Image 3.5 preview实测:生图效果媲美GPT Image 2.5,限时免费
5 Anthropic 两周提速 Claude 3 倍:可衡量就能优化,150 线程并行 + CI 棘轮护栏实战
6 腾讯QClaw宣布12月停运:AI办公内部赛马结束,WorkBuddy胜出
7 网易有道Confucius4双榜第一:R2T2语音识别与T3PO实时翻译模型开源
8 GPT-6 Sol实测:价格大幅下降但编码能力倒退,性价比成最大亮点
9 CLM-8B对比决策模型发布:延迟仅为Jev的九分之一,刷新SOTA
10 腾讯混元智囊团HyExpert上线:用行业专家知识优化大模型,兼职也能赚钱
苏米客
登录 注册
显示
没有账号? · 立即注册
显示
已有账号? · 直接登录
登录代表你已同意 用户协议 和 隐私政策
©2015-2024 苏米客XMSUMI 版权所有 · WWW.XMSUMI.COM 闽ICP备14005900号-6 网站地图 百度地图
微信文章助手 程序库 免费影视APP 免费字体下载 产品经理导航 爱克硕儿 产品经理AI资讯 Axure元件库下载 申请友联