<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[TanStack 42 个 npm 包遭供应链攻击，三漏洞链式利用致 84 个恶意版本发布]]></title><description><![CDATA[<p dir="auto">TanStack 创始人 Tanner Linsley 5 月 11 日发布官方事故复盘，披露当日 19:20~19:26 UTC 期间，攻击者通过三个漏洞的链式利用向 npm 发布了涵盖 42 个 @tanstack/* 包共 84 个恶意版本。攻击链分三步：第一步利用 <code>pull_request_target</code> 触发器的"Pwn Request"模式，在基础仓库权限上下文中执行了 fork PR 中的恶意代码；第二步通过 GitHub Actions 缓存投毒（Cache Poisoning），将含恶意载荷的 pnpm 存储写入生产发布流程将读取的缓存槽位；第三步在发布工作流运行时，从 GitHub Actions runner 进程内存中提取 OIDC 令牌，绕过正常发布步骤直接调用 npm 注册表 API——全程未窃取任何 npm 访问令牌。恶意版本在安装时会执行约 2.3 MB 的混淆脚本，抓取 AWS IMDS/Secrets Manager、GCP 元数据、Kubernetes service-account token、Vault token、<code>~/.npmrc</code>、GitHub token 及 SSH 私钥，并经 Session/Oxen 端对端加密网络回传；脚本还会通过 npm registry API 枚举受害者维护的其他包并植入同样注入代码，实现自我扩散。</p>
<p dir="auto">恶意版本在发布约 20 分钟后由外部安全研究员发现并公开披露，Socket.dev 随后主动联系 TanStack 团队确认情况；维护团队随即对全部 84 个版本标记废弃，并请 npm 安全团队从服务器端下架 tarball。受影响范围不含 @tanstack/query*、@tanstack/table*、@tanstack/form*、@tanstack/virtual*、@tanstack/store 及 @tanstack/start 元包。复盘指出，此次所用的 OIDC 令牌内存提取脚本与 2025 年 3 月 tj-actions/changed-files 供应链攻击中使用的工具几乎一字不差（含原归因注释），说明攻击者在重新组合已公开的攻击手法而非开发全新工具。TanStack 要求所有在 5 月 11 日安装了受影响版本的开发者或 CI 环境将该主机视为潜在已失陷，并立即轮换 AWS、GCP、Kubernetes、Vault、GitHub、npm 及 SSH 全部凭据。</p>
<p dir="auto"><a href="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem" target="_blank" rel="noopener noreferrer nofollow ugc">TanStack Blog</a></p>
<p dir="auto"></p><div class="card col-md-9 col-lg-6 position-relative link-preview p-0">



<a href="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem" title="Postmortem: TanStack npm supply-chain compromise | TanStack Blog">
<img src="https://tanstack.com/assets/og-C0HGjoLl.png" class="card-img-top not-responsive" style="max-height:15rem" alt="Link Preview Image" />
</a>



<div class="card-body">
<h5 class="card-title">
<a class="text-decoration-none" href="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem">
Postmortem: TanStack npm supply-chain compromise | TanStack Blog
</a>
</h5>
<p class="card-text line-clamp-3">On 2026-05-11, an attacker chained a pull_request_target Pwn Request, GitHub Actions cache poisoning across the fork↔base trust boundary, and OIDC token extraction from runner memory to publish 84 malicious versions across 42 @tanstack/* packages on npm. Full postmortem.</p>
</div>
<a href="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem" class="card-footer text-body-secondary small d-flex gap-2 align-items-center lh-2">



<img src="https://tanstack.com/favicon-32x32.png" alt="favicon" class="not-responsive overflow-hiddden" style="max-width:21px;max-height:21px" />









<p class="d-inline-block text-truncate mb-0"> <span class="text-secondary">(tanstack.com)</span></p>
</a>
</div><p></p>
]]></description><link>https://welinux.com//topic/316/tanstack-42-个-npm-包遭供应链攻击-三漏洞链式利用致-84-个恶意版本发布</link><generator>RSS for Node</generator><lastBuildDate>Mon, 18 May 2026 18:09:54 GMT</lastBuildDate><atom:link href="https://welinux.com//topic/316.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 May 2026 07:57:13 GMT</pubDate><ttl>60</ttl></channel></rss>