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.6%
- 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 54× in last 7d / 230× 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 343 total refreshes for this CVE.
- 2026-07-11 21:22 UTCEG score recompute
- 2026-07-11 17:35 UTCEG score recompute
- 2026-07-11 13:48 UTCEG score recompute
- 2026-07-11 10:01 UTCEG score recompute
- 2026-07-11 08:27 UTCEPSS rescore
- 2026-07-11 06:14 UTCEG score recompute
- 2026-07-11 02:25 UTCEG score recompute
- 2026-07-10 22:38 UTCEG score recompute
- 2026-07-10 18:51 UTCEG score recompute
- 2026-07-10 17:52 UTCCISA KEV update
- 2026-07-10 15:03 UTCEG score recompute
- 2026-07-10 11:16 UTCEG score recompute
- 2026-07-10 07:27 UTCEG score recompute
- 2026-07-10 03:39 UTCEG score recompute
- 2026-07-09 23:51 UTCEG score recompute
- 2026-07-09 20:04 UTCEG score recompute
- 2026-07-09 19:10 UTCEPSS rescore
- 2026-07-09 16:17 UTCEG score recompute
- 2026-07-09 12:29 UTCEG score recompute
- 2026-07-09 08:41 UTCEG score recompute
- 2026-07-09 04:54 UTCEG score recompute
- 2026-07-09 01:07 UTCEG score recompute
- 2026-07-08 21:20 UTCEG score recompute
- 2026-07-08 17:32 UTCEG score recompute
- 2026-07-08 15:16 UTCEPSS rescore
Show 75 moreShow fewer
- 2026-07-08 13:45 UTCEG score recompute
- 2026-07-08 09:57 UTCEG score recompute
- 2026-07-08 06:10 UTCEG score recompute
- 2026-07-08 02:21 UTCEG score recompute
- 2026-07-07 22:34 UTCEG score recompute
- 2026-07-07 19:01 UTCCISA KEV update
- 2026-07-07 18:47 UTCEG score recompute
- 2026-07-07 17:16 UTCCISA KEV update
- 2026-07-07 14:58 UTCEG score recompute
- 2026-07-07 13:46 UTCEPSS rescore
- 2026-07-07 11:09 UTCEG score recompute
- 2026-07-07 07:22 UTCEG score recompute
- 2026-07-07 03:34 UTCEG score recompute
- 2026-07-06 23:46 UTCEG score recompute
- 2026-07-06 19:57 UTCEG score recompute
- 2026-07-06 16:27 UTCEPSS rescore
- 2026-07-06 16:09 UTCEG score recompute
- 2026-07-06 12:22 UTCEG score recompute
- 2026-07-06 08:33 UTCEG score recompute
- 2026-07-06 04:45 UTCEG score recompute
- 2026-07-06 02:23 UTCEPSS rescore
- 2026-07-06 00:57 UTCEG score recompute
- 2026-07-05 21:09 UTCEG score recompute
- 2026-07-05 17:21 UTCEG score recompute
- 2026-07-05 13:34 UTCEG score recompute
- 2026-07-05 09:47 UTCEG score recompute
- 2026-07-05 05:58 UTCEG score recompute
- 2026-07-05 02:30 UTCEPSS rescore
- 2026-07-05 02:10 UTCEG score recompute
- 2026-07-04 22:23 UTCEG score recompute
- 2026-07-04 18:36 UTCEG score recompute
- 2026-07-04 14:47 UTCEG score recompute
- 2026-07-04 11:00 UTCEG score recompute
- 2026-07-04 07:13 UTCEG score recompute
- 2026-07-04 06:31 UTCEPSS rescore
- 2026-07-04 03:24 UTCEG score recompute
- 2026-07-03 23:37 UTCEG score recompute
- 2026-07-03 19:50 UTCEG score recompute
- 2026-07-03 16:03 UTCEG score recompute
- 2026-07-03 12:16 UTCEG score recompute
- 2026-07-03 08:28 UTCEG score recompute
- 2026-07-03 04:41 UTCEG score recompute
- 2026-07-03 00:54 UTCEG score recompute
- 2026-07-02 21:07 UTCEG score recompute
- 2026-07-02 17:20 UTCEG score recompute
- 2026-07-02 13:33 UTCEG score recompute
- 2026-07-02 09:45 UTCEG score recompute
- 2026-07-02 05:58 UTCEG score recompute
- 2026-07-02 02:11 UTCEG score recompute
- 2026-07-01 22:24 UTCEG score recompute
- 2026-07-01 19:16 UTCCISA KEV update
- 2026-07-01 18:36 UTCEG score recompute
- 2026-07-01 15:07 UTCEPSS rescore
- 2026-07-01 14:49 UTCEG score recompute
- 2026-07-01 11:02 UTCEG score recompute
- 2026-07-01 07:15 UTCEG score recompute
- 2026-07-01 03:28 UTCEG score recompute
- 2026-06-30 23:41 UTCEG score recompute
- 2026-06-30 23:22 UTCEPSS rescore
- 2026-06-30 19:54 UTCEG score recompute
- 2026-06-30 16:07 UTCEG score recompute
- 2026-06-30 12:19 UTCEG score recompute
- 2026-06-30 08:31 UTCEG score recompute
- 2026-06-30 04:43 UTCEG score recompute
- 2026-06-30 00:51 UTCEG score recompute
- 2026-06-29 21:04 UTCEG score recompute
- 2026-06-29 19:12 UTCCISA KEV update
- 2026-06-29 17:16 UTCEG score recompute
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-29 13:29 UTCEG score recompute
- 2026-06-29 09:42 UTCEG score recompute
- 2026-06-29 05:52 UTCEG score recompute
- 2026-06-29 02:04 UTCEG score recompute
- 2026-06-28 22:17 UTCEG score recompute
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.