CVE-2026-45321

CRITICAL CISA KEV
Published May 12, 2026 Modified May 14, 2026 CWE-506

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.

CVSS v3.1 Score

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

EPSS — Exploit Prediction

0.0003
Probability of exploitation
0.08%
Percentile rank

EPSS estimates the probability that this vulnerability will be exploited in the wild within the next 30 days. A higher score means more likely to be exploited.

CISA Known Exploited Vulnerability

This vulnerability is actively exploited in the wild.

Added: May 27, 2026 Remediation due: Jun 10, 2026

Weakness Type (CWE)

CWE-506 CWE-506

Affected Products

Vendor Product
tanstack tanstack\/arktype-adapter
tanstack tanstack\/arktype-adapter
tanstack tanstack\/eslint-plugin-router
tanstack tanstack\/eslint-plugin-router
tanstack tanstack\/eslint-plugin-start
tanstack tanstack\/eslint-plugin-start
tanstack tanstack\/history
tanstack tanstack\/history
tanstack tanstack\/nitro-v2-vite-plugin
tanstack tanstack\/nitro-v2-vite-plugin
tanstack tanstack\/react-router
tanstack tanstack\/react-router
tanstack tanstack\/react-router-devtools
tanstack tanstack\/react-router-devtools
tanstack tanstack\/react-router-ssr-query
tanstack tanstack\/react-router-ssr-query
tanstack tanstack\/react-start
tanstack tanstack\/react-start
tanstack tanstack\/react-start-client
tanstack tanstack\/react-start-client
tanstack tanstack\/react-start-rsc
tanstack tanstack\/react-start-rsc
tanstack tanstack\/react-start-server
tanstack tanstack\/react-start-server
tanstack tanstack\/router-cli
tanstack tanstack\/router-cli
tanstack tanstack\/router-core
tanstack tanstack\/router-core
tanstack tanstack\/router-devtools
tanstack tanstack\/router-devtools
tanstack tanstack\/router-devtools-core
tanstack tanstack\/router-devtools-core
tanstack tanstack\/router-generator
tanstack tanstack\/router-generator
tanstack tanstack\/router-plugin
tanstack tanstack\/router-plugin
tanstack tanstack\/router-ssr-query-core
tanstack tanstack\/router-ssr-query-core
tanstack tanstack\/router-utils
tanstack tanstack\/router-utils
tanstack tanstack\/router-vite-plugin
tanstack tanstack\/router-vite-plugin
tanstack tanstack\/solid-router
tanstack tanstack\/solid-router
tanstack tanstack\/solid-router-devtools
tanstack tanstack\/solid-router-devtools
tanstack tanstack\/solid-router-ssr-query
tanstack tanstack\/solid-router-ssr-query
tanstack tanstack\/solid-start
tanstack tanstack\/solid-start
tanstack tanstack\/solid-start-client
tanstack tanstack\/solid-start-client
tanstack tanstack\/solid-start-server
tanstack tanstack\/solid-start-server
tanstack tanstack\/start-client-core
tanstack tanstack\/start-client-core
tanstack tanstack\/start-fn-stubs
tanstack tanstack\/start-fn-stubs
tanstack tanstack\/start-plugin-core
tanstack tanstack\/start-plugin-core
tanstack tanstack\/start-server-core
tanstack tanstack\/start-server-core
tanstack tanstack\/start-static-server-functions
tanstack tanstack\/start-static-server-functions
tanstack tanstack\/start-storage-context
tanstack tanstack\/start-storage-context
tanstack tanstack\/valibot-adapter
tanstack tanstack\/valibot-adapter
tanstack tanstack\/virtual-file-routes
tanstack tanstack\/virtual-file-routes
tanstack tanstack\/vue-router
tanstack tanstack\/vue-router
tanstack tanstack\/vue-router-devtools
tanstack tanstack\/vue-router-devtools
tanstack tanstack\/vue-router-ssr-query
tanstack tanstack\/vue-router-ssr-query
tanstack tanstack\/vue-start
tanstack tanstack\/vue-start
tanstack tanstack\/vue-start-client
tanstack tanstack\/vue-start-client
tanstack tanstack\/vue-start-server
tanstack tanstack\/vue-start-server
tanstack tanstack\/zod-adapter
tanstack tanstack\/zod-adapter

References

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. It has a CVSS v3.1 base score of 9.6 (CRITICAL). This vulnerability is listed in CISA's Known Exploited Vulnerabilities catalog, indicating active exploitation in the wild.
How severe is CVE-2026-45321? +
CVE-2026-45321 has a CVSS v3.1 score of 9.6 out of 10, rated CRITICAL. This is a critical vulnerability that should be patched immediately. The EPSS score is 0.0003, placing it in the 0th percentile for exploitation probability.
What products are affected by CVE-2026-45321? +
CVE-2026-45321 affects products from tanstack, specifically: tanstack\/arktype-adapter, tanstack\/eslint-plugin-router, tanstack\/eslint-plugin-start, tanstack\/history, tanstack\/nitro-v2-vite-plugin, tanstack\/react-router, tanstack\/react-router-devtools, tanstack\/react-router-ssr-query, tanstack\/react-start, tanstack\/react-start-client, tanstack\/react-start-rsc, tanstack\/react-start-server, tanstack\/router-cli, tanstack\/router-core, tanstack\/router-devtools, tanstack\/router-devtools-core, tanstack\/router-generator, tanstack\/router-plugin, tanstack\/router-ssr-query-core, tanstack\/router-utils, tanstack\/router-vite-plugin, tanstack\/solid-router, tanstack\/solid-router-devtools, tanstack\/solid-router-ssr-query, tanstack\/solid-start, tanstack\/solid-start-client, tanstack\/solid-start-server, tanstack\/start-client-core, tanstack\/start-fn-stubs, tanstack\/start-plugin-core, tanstack\/start-server-core, tanstack\/start-static-server-functions, tanstack\/start-storage-context, tanstack\/valibot-adapter, tanstack\/virtual-file-routes, tanstack\/vue-router, tanstack\/vue-router-devtools, tanstack\/vue-router-ssr-query, tanstack\/vue-start, tanstack\/vue-start-client, tanstack\/vue-start-server, tanstack\/zod-adapter. Check the affected products table above for specific version ranges.
How do I check if I'm vulnerable to CVE-2026-45321? +
You can use Secably's free Website Scanner to check your website for known vulnerabilities. For infrastructure scanning, use the Port Scanner to identify exposed services that may be affected. Check the vendor advisories linked above for specific patch and version information.

Related Vulnerabilities

Don't wait for an exploit

Scan your website for vulnerabilities like CVE-2026-45321 — free, no signup required.

Start Free Scan