CVE-2026-45321
CRITICAL CISA KEVDescription
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.
Is your site exposed to CVE-2026-45321?
Run a free security scan — no signup, results in seconds.
CVSS v3.1 Score
EPSS — Exploit Prediction
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.
Weakness Type (CWE)
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
Advisories & Patches
Exploits
Other References
Frequently Asked Questions
What is CVE-2026-45321? +
How severe is CVE-2026-45321? +
What products are affected by CVE-2026-45321? +
How do I check if I'm vulnerable to CVE-2026-45321? +
Related Vulnerabilities
color is a Javascript color conversion and manipulation library. On 8 September 2025, the npm publishing account for color was …
debug is a JavaScript debugging utility. On 8 September 2025, the npm publishing account for debug was taken over after …
backlash parses collected strings with escapes. On 8 September 2025, the npm publishing account for backslash was taken over after …
color-string is a parser and generator for CSS color strings. On 8 September 2025, the npm publishing account for color-string …
simple-swizzle swizzles function arguments. On 8 September 2025, the npm publishing account for simple-swizzle was taken over after a phishing …
color-convert provides plain color conversion functions in JavaScript. On 8 September 2025, the npm publishing account for color-convert was taken …