Patchfirst
CVE-2026-45321 KEVRansomwarePublic exploit Critical · 9.6 EPSS 3.3%

TanStack Unspecified Vulnerability

TanStack · TanStack

Summary

A malicious-code compromise affects the TanStack product's npm packages, specifically 84 versions across 42 @tanstack/* packages published under a trusted GitHub Actions OIDC identity for TanStack/router after its publish workflow was abused through a chain of pull_request_target misconfiguration, cache poisoning, and runtime extraction of the OIDC token. An attacker with network access can get credential-stealing malware into these packages by exploiting that chain, and the attack requires user interaction, such as a developer or system installing or updating one of the affected packages.

Official description · NVD

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.

Breakdown
86.3 / 100
Exploited
Yes, in CISA KEV
Reports
1
Tactics
2/15

How an attack unfolds

Based on mappings. Select a step to see the evidence.
  1. How attackers get in

  2. What they do

First seen exploited 15 days after disclosure. Public exploit code (PoC-in-GitHub) was available the same day.

  1. DisclosedPublic exploit codePoC-in-GitHubday 0
  2. First seen exploitedVulnCheck KEV evidenceAdded to CISA KEVknown ransomware use; EU database agrees+15 days

CISA KEV listing is when exploitation was confirmed, not necessarily the first attack.

2 fixes in @tanstack/react-start over 5 months. The latest fix listed for @tanstack/react-start is 1.168.60.

Fixes in @tanstack/react-startnpm package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 1.167.72CVE-2026-4532112 May 2026KEV
  2. 1.168.60CVE-2026-10298913 Oct 2026Latest listed

techniques

2 , grouped by in kill-chain order, 2 cited passages 2

Initial AccessTA0001

Compromise Software Supply Chain T1195.002 Medium
AI mapping from the description · how it is exploited

compromised build pipeline and supply chain abuse

a pull_request_target "Pwn Request" misconfiguration, GitHub Actions cache poisoning
From the official description (NVD) Original (opens in a new tab) ↗

Credential AccessTA0006

Steal Application Access Token T1528 Medium
AI mapping from the description · primary impact

steals OIDC token from runner memory

runtime memory extraction of the OIDC token from the Actions runner process
From the official description (NVD) Original (opens in a new tab) ↗

Detection

0 rules for this CVE · 31 general rules for its techniques

Rules for this CVE

0 that reference CVE-2026-45321 directly.

CVE-specific rules are not available in this build. Search SigmaHQ ↗

Sigma rules © SigmaHQ, Detection Rule License 1.1; linked, not reproduced.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

42 packages in 1 ecosystem. No single main package: each of these ships the affected code.

  • npm@tanstack/arktype-adapter
    Affected: 1.166.15 up to 1.166.16; 1.166.12 up to 1.166.16Upgrade to 1.166.16 or later
  • npm@tanstack/eslint-plugin-router
    Affected: 1.161.12 up to 1.161.13; 1.161.9 up to 1.161.13Upgrade to 1.161.13 or later
  • npm@tanstack/eslint-plugin-start
    Affected: 0.0.7 up to 0.0.8; 0.0.4 up to 0.0.8Upgrade to 0.0.8 or later
  • npm@tanstack/history
    Affected: 1.161.12 up to 1.161.13; 1.161.9 up to 1.161.13Upgrade to 1.161.13 or later
  • npm@tanstack/nitro-v2-vite-plugin
    Affected: 1.154.15 up to 1.154.16; 1.154.12 up to 1.154.16Upgrade to 1.154.16 or later
  • npm@tanstack/react-router
    Affected: 1.169.8 up to 1.169.9; 1.169.5 up to 1.169.9Upgrade to 1.169.9 or later
  • npm@tanstack/react-router-devtools
    Affected: 1.166.19 up to 1.166.20; 1.166.16 up to 1.166.20Upgrade to 1.166.20 or later
  • npm@tanstack/react-router-ssr-query
    Affected: 1.166.18 up to 1.166.19; 1.166.15 up to 1.166.19Upgrade to 1.166.19 or later
  • npm@tanstack/react-start
    Affected: 1.167.71 up to 1.167.72; 1.167.68 up to 1.167.72Upgrade to 1.168.60 or later (older lines: 1.167.72)
  • npm@tanstack/react-start-client
    Affected: 1.166.54 up to 1.166.55; 1.166.51 up to 1.166.55Upgrade to 1.166.55 or later
  • npm@tanstack/react-start-rsc
    Affected: 0.0.50 up to 0.0.51; 0.0.47 up to 0.0.51Upgrade to 0.0.51 or later
  • npm@tanstack/react-start-server
    Affected: 1.166.58 up to 1.166.59; 1.166.55 up to 1.166.59Upgrade to 1.166.59 or later
  • npm@tanstack/router-cli
    Affected: 1.166.49 up to 1.166.50; 1.166.46 up to 1.166.50Upgrade to 1.166.50 or later
  • npm@tanstack/router-core
    Affected: 1.169.8 up to 1.169.9; 1.169.5 up to 1.169.9Upgrade to 1.169.9 or later
  • npm@tanstack/router-devtools
    Affected: 1.166.19 up to 1.166.20; 1.166.16 up to 1.166.20Upgrade to 1.166.20 or later
  • npm@tanstack/router-devtools-core
    Affected: 1.167.9 up to 1.167.10; 1.167.6 up to 1.167.10Upgrade to 1.167.10 or later
  • npm@tanstack/router-generator
    Affected: 1.166.48 up to 1.166.49; 1.166.45 up to 1.166.49Upgrade to 1.166.49 or later
  • npm@tanstack/router-plugin
    Affected: 1.167.41 up to 1.167.42; 1.167.38 up to 1.167.42Upgrade to 1.167.42 or later
  • npm@tanstack/router-ssr-query-core
    Affected: 1.168.6 up to 1.168.7; 1.168.3 up to 1.168.7Upgrade to 1.168.7 or later
  • npm@tanstack/router-utils
    Affected: 1.161.14 up to 1.161.15; 1.161.11 up to 1.161.15Upgrade to 1.161.15 or later
  • npm@tanstack/router-vite-plugin
    Affected: 1.166.56 up to 1.166.57; 1.166.53 up to 1.166.57Upgrade to 1.166.57 or later
  • npm@tanstack/solid-router
    Affected: 1.169.8 up to 1.169.9; 1.169.5 up to 1.169.9Upgrade to 1.169.9 or later
  • npm@tanstack/solid-router-devtools
    Affected: 1.166.19 up to 1.166.20; 1.166.16 up to 1.166.20Upgrade to 1.166.20 or later
  • npm@tanstack/solid-router-ssr-query
    Affected: 1.166.18 up to 1.166.19; 1.166.15 up to 1.166.19Upgrade to 1.166.19 or later
  • npm@tanstack/solid-start
    Affected: 1.167.68 up to 1.167.69; 1.167.65 up to 1.167.69Upgrade to 1.168.57 or later (older lines: 1.167.69)
  • npm@tanstack/solid-start-client
    Affected: 1.166.53 up to 1.166.54; 1.166.50 up to 1.166.54Upgrade to 1.166.54 or later
  • npm@tanstack/solid-start-server
    Affected: 1.166.57 up to 1.166.58; 1.166.54 up to 1.166.58Upgrade to 1.166.58 or later
  • npm@tanstack/start-client-core
    Affected: 1.168.8 up to 1.168.9; 1.168.5 up to 1.168.9Upgrade to 1.168.9 or later
  • npm@tanstack/start-fn-stubs
    Affected: 1.161.12 up to 1.161.13; 1.161.9 up to 1.161.13Upgrade to 1.161.13 or later
  • npm@tanstack/start-plugin-core
    Affected: 1.169.26 up to 1.169.27; 1.169.23 up to 1.169.27Upgrade to 1.169.27 or later
  • npm@tanstack/start-server-core
    Affected: 1.167.36 up to 1.167.37; 1.167.33 up to 1.167.37Upgrade to 1.169.39 or later (older lines: 1.167.37)
  • npm@tanstack/start-static-server-functions
    Affected: 1.166.47 up to 1.166.48; 1.166.44 up to 1.166.48Upgrade to 1.166.48 or later
  • npm@tanstack/start-storage-context
    Affected: 1.166.41 up to 1.166.42; 1.166.38 up to 1.166.42Upgrade to 1.166.42 or later
  • npm@tanstack/valibot-adapter
    Affected: 1.166.15 up to 1.166.16; 1.166.12 up to 1.166.16Upgrade to 1.166.16 or later
  • npm@tanstack/virtual-file-routes
    Affected: 1.161.13 up to 1.161.14; 1.161.10 up to 1.161.14Upgrade to 1.161.14 or later
  • npm@tanstack/vue-router
    Affected: 1.169.8 up to 1.169.9; 1.169.5 up to 1.169.9Upgrade to 1.169.9 or later
  • npm@tanstack/vue-router-devtools
    Affected: 1.166.19 up to 1.166.20; 1.166.16 up to 1.166.20Upgrade to 1.166.20 or later
  • npm@tanstack/vue-router-ssr-query
    Affected: 1.166.18 up to 1.166.19; 1.166.15 up to 1.166.19Upgrade to 1.166.19 or later
  • npm@tanstack/vue-start
    Affected: 1.167.64 up to 1.167.65; 1.167.61 up to 1.167.65Upgrade to 1.168.56 or later (older lines: 1.167.65)
  • npm@tanstack/vue-start-client
    Affected: 1.166.49 up to 1.166.50; 1.166.46 up to 1.166.50Upgrade to 1.166.50 or later
  • npm@tanstack/vue-start-server
    Affected: 1.166.53 up to 1.166.54; 1.166.50 up to 1.166.54Upgrade to 1.166.54 or later
  • npm@tanstack/zod-adapter
    Affected: 1.166.15 up to 1.166.16; 1.166.12 up to 1.166.16Upgrade to 1.166.16 or later

Check your lockfile against all CVEs

What security researchers reported

Named in 1 threat report
1 reportFBI

Reports are matched by finding the exact id CVE-2026-45321 in their text; nobody has reviewed the match. One passage is shown per report, at most 320 characters, linked to the original.

Also mentioned in 50 community threat pulses (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

5 links, grouped by NVD tag
↑ ↓ chooseEnter openEsc close