CVE-2026-45321 TanStack Unspecified
Attackers published malicious versions of TanStack npm packages to steal cloud credentials, GitHub tokens, and SSH keys from users installing them.
- Exploited in the wild
- Since 27 May 2026
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-45321?
CVE-2026-45321 is a critical vulnerability in @tanstack arktype-adapter, published on 12 May 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
On 2026-05-11, between approximately 19:20 and 19:26 UTC, 84 malicious versions across 42 @tanstack/* packages were published to the npm registry. The publishes were authenticated via the legitimate GitHub Actions OIDC trusted-publisher binding for TanStack/router, but the publish workflow itself was not modified. The attacker chained three known vulnerability classes — a pull_request_target "Pwn Request" misconfiguration, GitHub Actions cache poisoning across the fork↔base trust boundary, and runtime memory extraction of the OIDC token from the Actions runner process — to publish credential-stealing malware under a trusted identity. Each affected package received exactly two malicious versions, published a few minutes apart.
Weakness: CWE-506
Which versions are affected by CVE-2026-45321?
40 open source packages ship an affected version, including @tanstack/arktype-adapter, @tanstack/eslint-plugin-router and @tanstack/eslint-plugin-start. It affects 171 products.
| Package | Affected | Fixed in |
|---|---|---|
@tanstack/arktype-adapter npm | From 1.166.12 | 1.166.16 |
@tanstack/arktype-adapter npm | From 1.166.12 | 1.166.16 |
@tanstack/arktype-adapter npm | From 1.166.15 | 1.166.16 |
@tanstack/arktype-adapter npm | From 1.166.15 | 1.166.16 |
@tanstack/eslint-plugin-router npm | From 1.161.12 | 1.161.13 |
@tanstack/eslint-plugin-router npm | From 1.161.12 | 1.161.13 |
34 more packages
@tanstack/eslint-plugin-router npm | From 1.161.9 | 1.161.13 |
@tanstack/eslint-plugin-router npm | From 1.161.9 | 1.161.13 |
@tanstack/eslint-plugin-start npm | From 0.0.4 | 0.0.8 |
@tanstack/eslint-plugin-start npm | From 0.0.4 | 0.0.8 |
@tanstack/eslint-plugin-start npm | From 0.0.7 | 0.0.8 |
@tanstack/eslint-plugin-start npm | From 0.0.7 | 0.0.8 |
@tanstack/history npm | From 1.161.12 | 1.161.13 |
@tanstack/history npm | From 1.161.12 | 1.161.13 |
@tanstack/history npm | From 1.161.9 | 1.161.13 |
@tanstack/history npm | From 1.161.9 | 1.161.13 |
@tanstack/nitro-v2-vite-plugin npm | From 1.154.12 | 1.154.16 |
@tanstack/nitro-v2-vite-plugin npm | From 1.154.12 | 1.154.16 |
@tanstack/nitro-v2-vite-plugin npm | From 1.154.15 | 1.154.16 |
@tanstack/nitro-v2-vite-plugin npm | From 1.154.15 | 1.154.16 |
@tanstack/react-router npm | From 1.169.5 | 1.169.9 |
@tanstack/react-router npm | From 1.169.5 | 1.169.9 |
@tanstack/react-router npm | From 1.169.8 | 1.169.9 |
@tanstack/react-router npm | From 1.169.8 | 1.169.9 |
@tanstack/react-router-devtools npm | From 1.166.16 | 1.166.20 |
@tanstack/react-router-devtools npm | From 1.166.16 | 1.166.20 |
@tanstack/react-router-devtools npm | From 1.166.19 | 1.166.20 |
@tanstack/react-router-devtools npm | From 1.166.19 | 1.166.20 |
@tanstack/react-router-ssr-query npm | From 1.166.15 | 1.166.19 |
@tanstack/react-router-ssr-query npm | From 1.166.15 | 1.166.19 |
@tanstack/react-router-ssr-query npm | From 1.166.18 | 1.166.19 |
@tanstack/react-router-ssr-query npm | From 1.166.18 | 1.166.19 |
@tanstack/react-start npm | From 1.167.68 | 1.167.72 |
@tanstack/react-start npm | From 1.167.68 | 1.167.72 |
@tanstack/react-start npm | From 1.167.71 | 1.167.72 |
@tanstack/react-start npm | From 1.167.71 | 1.167.72 |
@tanstack/react-start-client npm | From 1.166.51 | 1.166.55 |
@tanstack/react-start-client npm | From 1.166.51 | 1.166.55 |
@tanstack/react-start-client npm | From 1.166.54 | 1.166.55 |
@tanstack/react-start-client npm | From 1.166.54 | 1.166.55 |
Products include Abhishake1 Supersurkhet\/Cli, Abhishake1 Supersurkhet\/Sdk, Abhishake1 Taskflow-Corp\/Cli, Agentworkhq Agentwork-Cli, Antoinebcx Ml-Toolkit-Ts, Antoinebcx Ml-Toolkit-Ts\/Preprocessing and 165 more.
How do I fix CVE-2026-45321?
Upgrade @tanstack/arktype-adapter to 1.166.16 or later. US federal agencies must fix it by 10 Jun 2026.
Is CVE-2026-45321 being exploited?
Yes. Attackers have exploited CVE-2026-45321 in the wild since at least 27 May 2026, including in ransomware campaigns.
Public exploit code: 12 proofs of concept on GitHub.
Sources
Also known as GHSA-g7cv-rxg3-hmpx.