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.
CVE-2026-45321
Score elevated to 9.6 because this CVE is listed on the CISA Known Exploited Vulnerabilities catalog (added 2026-05-27), indicating real-world exploitation has been confirmed by US federal agencies. NVD baseline CVSS 9.6 retained for reference. Confidence: HIGH.
- Actively exploited in the wild (CISA-KEV)
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 9.6
- EG Score
- 9.6(high)
- EPSS
- 81.8%
- KEV
- ⚠ Exploited
Published
May 12, 2026
Last Modified
May 29, 2026
Advisory Details (2)
Auto-updated May 12, 2026Malware in 42 @tanstack/* packages exfiltrates cloud credentials, GitHub tokens, and SSH keys · Advisory · TanStack/router · GitHub
https://github.com/TanStack/router/security/advisories/GHSA-g7cv-rxg3-hmpxSeveral npm latest releases are compromised · Issue #7383 · TanStack/router · GitHub
https://github.com/TanStack/router/issues/7383Vendor Advisories for CVE-2026-45321(1)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
Affected Packages
(42 across 1 ecosystem)
npm(42)
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 17× in last 7d / 53× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
Showing the most recent 100 of 109 total refreshes for this CVE.
- 2026-07-22 19:40 UTCCISA KEV update
- 2026-07-22 15:27 UTCEG score recompute
- 2026-07-22 14:08 UTCEPSS rescore
- 2026-07-21 16:41 UTCEG score recompute
- 2026-07-21 15:24 UTCEPSS rescore
- 2026-07-21 14:37 UTCCISA KEV update
- 2026-07-20 17:55 UTCEG score recompute
- 2026-07-20 17:08 UTCEPSS rescore
- 2026-07-19 15:03 UTCEG score recompute
- 2026-07-19 14:31 UTCEPSS rescore
- 2026-07-19 03:41 UTCEG score recompute
- 2026-07-19 02:29 UTCEPSS rescore
- 2026-07-18 12:31 UTCEG score recompute
- 2026-07-18 10:04 UTCEPSS rescore
- 2026-07-17 10:01 UTCEG score recompute
- 2026-07-16 17:04 UTCCISA KEV update
- 2026-07-16 17:03 UTCEPSS rescore
- 2026-07-15 16:57 UTCEPSS rescore
- 2026-07-15 16:49 UTCCISA KEV update
- 2026-07-15 15:04 UTCCISA KEV update
- 2026-07-15 02:00 UTCEPSS rescore
- 2026-07-14 18:05 UTCCISA KEV update
- 2026-07-13 22:30 UTCEPSS rescore
- 2026-07-13 17:07 UTCCISA KEV update
- 2026-07-13 06:13 UTCEPSS rescore
Show 75 moreShow fewer
- 2026-07-12 05:46 UTCEPSS rescore
- 2026-07-11 08:27 UTCEPSS rescore
- 2026-07-10 17:52 UTCCISA KEV update
- 2026-07-09 19:10 UTCEPSS rescore
- 2026-07-08 15:16 UTCEPSS rescore
- 2026-07-07 19:01 UTCCISA KEV update
- 2026-07-07 17:16 UTCCISA KEV update
- 2026-07-07 13:46 UTCEPSS rescore
- 2026-07-06 16:27 UTCEPSS rescore
- 2026-07-06 02:23 UTCEPSS rescore
- 2026-07-05 02:30 UTCEPSS rescore
- 2026-07-04 06:31 UTCEPSS rescore
- 2026-07-01 19:16 UTCCISA KEV update
- 2026-07-01 15:07 UTCEPSS rescore
- 2026-06-30 23:22 UTCEPSS rescore
- 2026-06-29 19:12 UTCCISA KEV update
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-28 14:07 UTCEPSS rescore
- 2026-06-28 04:56 UTCEPSS rescore
- 2026-06-28 04:56 UTCEPSS rescore
- 2026-06-27 03:08 UTCEPSS rescore
- 2026-06-25 19:15 UTCCISA KEV update
- 2026-06-25 13:49 UTCEPSS rescore
- 2026-06-24 14:05 UTCEPSS rescore
- 2026-06-23 21:33 UTCEPSS rescore
- 2026-06-23 21:33 UTCEPSS rescore
- 2026-06-23 17:44 UTCCISA KEV update
- 2026-06-21 14:56 UTCEPSS rescore
- 2026-06-21 14:56 UTCEPSS rescore
- 2026-06-19 19:25 UTCEPSS rescore
- 2026-06-18 17:52 UTCEPSS rescore
- 2026-06-18 17:52 UTCEPSS rescore
- 2026-06-18 16:13 UTCCISA KEV update
- 2026-06-17 17:53 UTCEPSS rescore
- 2026-06-16 19:33 UTCCISA KEV update
- 2026-06-16 17:52 UTCEPSS rescore
- 2026-06-15 19:33 UTCCISA KEV update
- 2026-06-15 17:49 UTCEPSS rescore
- 2026-06-13 23:00 UTCEPSS rescore
- 2026-06-12 23:12 UTCEPSS rescore
- 2026-06-12 23:12 UTCEPSS rescore
- 2026-06-12 17:35 UTCCISA KEV update
- 2026-06-11 19:10 UTCCISA KEV update
- 2026-06-11 14:00 UTCEPSS rescore
- 2026-06-10 22:18 UTCEPSS rescore
- 2026-06-10 13:22 UTCEPSS rescore
- 2026-06-10 13:22 UTCEPSS rescore
- 2026-06-09 18:42 UTCCISA KEV update
- 2026-06-09 17:12 UTCCISA KEV update
- 2026-06-08 19:16 UTCCISA KEV update
- 2026-06-08 17:26 UTCCISA KEV update
- 2026-06-07 15:25 UTCEPSS rescore
- 2026-06-07 15:25 UTCEPSS rescore
- 2026-06-06 13:47 UTCEPSS rescore
- 2026-06-06 13:47 UTCEPSS rescore
- 2026-06-05 22:47 UTCEPSS rescore
- 2026-06-05 22:43 UTCCISA KEV update
- 2026-06-04 13:12 UTCEPSS rescore
- 2026-06-04 13:12 UTCEPSS rescore
- 2026-06-03 19:09 UTCCISA KEV update
- 2026-06-02 20:13 UTCEPSS rescore
- 2026-06-02 18:32 UTCCISA KEV update
- 2026-06-01 20:42 UTCCISA KEV update
- 2026-06-01 13:52 UTCEPSS rescore
- 2026-06-01 13:52 UTCEPSS rescore
- 2026-05-31 22:30 UTCEPSS rescore
- 2026-05-31 22:30 UTCEPSS rescore
- 2026-05-31 00:16 UTCEPSS rescore
- 2026-05-31 00:16 UTCEPSS rescore
- 2026-05-29 22:20 UTCCISA KEV update
- 2026-05-29 13:44 UTCEPSS rescore
- 2026-05-29 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
Publicly available exploits
(2 references)Working exploit code is in the public domain (2 GitHub PoCs). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.
- GitHub PoCfabriziosalmi/tanstack-compromise-checkerFirst seen May 16, 2026
Shell script to detect TanStack npm supply chain attack indicators (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx)
Open source ↗ - GitHub PoCIntrudify/mini-shai-hulud-scannerFirst seen May 13, 2026
Scanner for the Mini Shai-Hulud npm/PyPI supply chain worm (NHS CC-4781 · CVE-2026-45321). Detects gh-token-monitor persistence, payload artefacts, and attacker commits. Python, Bash, PowerShell.
Open source ↗
Frequently asked(6)
What is CVE-2026-45321?
When was CVE-2026-45321 disclosed?
Is CVE-2026-45321 actively exploited?
What is the CVSS score of CVE-2026-45321?
Which products are affected by CVE-2026-45321?
How do I remediate CVE-2026-45321?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-45321
Is Your Infrastructure Affected by CVE-2026-45321?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.