CVE-2026-45321

CRITICALCVSS 9.6/10Actively ExploitedEPSS 2.34%

Last modified

CVE-2026-45321 is a critical-severity vulnerability rated 9.6/10 on the CVSS scale. 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. CISA has confirmed active exploitation in the wild. EPSS estimates a 2.34% chance of exploitation in the next 30 days.

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.

Metrics

CVSS 3.1
9.6/10

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H

EPSS Probability
2.34%

81.5th percentile

Probability of exploitation in the next 30 days. Learn more

Exploitation Status

This vulnerability is listed in CISA’s Known Exploited Vulnerabilities catalog, confirming active exploitation in the wild. Federal agencies must remediate by .

Weakness Enumeration

Affected Software

VendorProductVersions
TanstackTanstack\/Arktype-Adapter1.166.12
TanstackTanstack\/Arktype-Adapter1.166.15
TanstackTanstack\/Eslint-Plugin-Router1.161.9
TanstackTanstack\/Eslint-Plugin-Router1.161.12
TanstackTanstack\/Eslint-Plugin-Start0.0.4
TanstackTanstack\/Eslint-Plugin-Start0.0.7
TanstackTanstack\/History1.161.9
TanstackTanstack\/History1.161.12
TanstackTanstack\/Nitro-V2-Vite-Plugin1.154.12
TanstackTanstack\/Nitro-V2-Vite-Plugin1.154.15
TanstackTanstack\/React-Router1.169.5
TanstackTanstack\/React-Router1.169.8
TanstackTanstack\/React-Router-Devtools1.166.16
TanstackTanstack\/React-Router-Devtools1.166.19
TanstackTanstack\/React-Router-Ssr-Query1.166.15
TanstackTanstack\/React-Router-Ssr-Query1.166.18
TanstackTanstack\/React-Start1.167.68
TanstackTanstack\/React-Start1.167.71
TanstackTanstack\/React-Start-Client1.166.51
TanstackTanstack\/React-Start-Client1.166.54
TanstackTanstack\/React-Start-Rsc0.0.47
TanstackTanstack\/React-Start-Rsc0.0.50
TanstackTanstack\/React-Start-Server1.166.55
TanstackTanstack\/React-Start-Server1.166.58
TanstackTanstack\/Router-Cli1.166.46
TanstackTanstack\/Router-Cli1.166.49
TanstackTanstack\/Router-Core1.169.5
TanstackTanstack\/Router-Core1.169.8
TanstackTanstack\/Router-Devtools1.166.16
TanstackTanstack\/Router-Devtools1.166.19
TanstackTanstack\/Router-Devtools-Core1.167.6
TanstackTanstack\/Router-Devtools-Core1.167.9
TanstackTanstack\/Router-Generator1.166.45
TanstackTanstack\/Router-Generator1.166.48
TanstackTanstack\/Router-Plugin1.167.38
TanstackTanstack\/Router-Plugin1.167.41
TanstackTanstack\/Router-Ssr-Query-Core1.168.3
TanstackTanstack\/Router-Ssr-Query-Core1.168.6
TanstackTanstack\/Router-Utils1.161.11
TanstackTanstack\/Router-Utils1.161.14
TanstackTanstack\/Router-Vite-Plugin1.166.53
TanstackTanstack\/Router-Vite-Plugin1.166.56
TanstackTanstack\/Solid-Router1.169.5
TanstackTanstack\/Solid-Router1.169.8
TanstackTanstack\/Solid-Router-Devtools1.166.16
TanstackTanstack\/Solid-Router-Devtools1.166.19
TanstackTanstack\/Solid-Router-Ssr-Query1.166.15
TanstackTanstack\/Solid-Router-Ssr-Query1.166.18
TanstackTanstack\/Solid-Start1.167.65
TanstackTanstack\/Solid-Start1.167.68

Showing 50 of 343 affected configurations. See NVD for the full list.

References

Timeline

Published
Last Modified
Status
Analyzed

Frequently Asked Questions

What is CVE-2026-45321?
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.
How severe is CVE-2026-45321?
CVE-2026-45321 has a CVSS score of 9.6/10 (CRITICAL severity). The EPSS model estimates a 2.34% probability of exploitation in the next 30 days. This vulnerability is listed in CISA's Known Exploited Vulnerabilities catalog.
How do I fix CVE-2026-45321?
Check the vendor references and advisories linked above for patched versions and mitigation guidance. You can also run a Strix scan to test if your systems are affected.

Are you affected by CVE-2026-45321?

Run a free Strix scan to check your systems for this vulnerability.

Scan your code now

Source: NVD / NIST