CVE Intelligence
Skip to main content
CISA KEVRansomwarecriticalRemote Code Execpublic exploit

CVE-2026-45321

Malware in 42 @tanstack/* packages exfiltrates cloud credentials, GitHub tokens, and SSH keys

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.

Published Updated Sources: NVD, @tanstack (CNA), CISA, FIRST EPSS, GitHub, GitHub Security Advisory

Triage

Is it exploited, how likely is exploitation, what does it touch, and how severe do the scoring sources call it.

Exploitation

Confirmed

CISA KEV, listed May 27, 2026

EPSS

2%

ahead of 82% of scored CVEs

Affects

@tanstack

168 products listed

CVSS base

9.6

critical

CISA SSVC assessment

Three decision points CISA publishes for the CVEs it assesses · SSVC 2.0.3. A stakeholder decision, not a severity score.

CISA

Exploitation

Active

none · proof-of-concept · active

Automatable

No

can an attacker script all four kill-chain steps

Technical impact

Total

partial · total control of the vulnerable component

Remediation

The vendor's own words where we have them.

Upgrade @tanstack/arktype-adapter to 1.166.16 or later (npm advisory GHSA-g7cv-rxg3-hmpx).

CISA required action

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Federal deadline Jun 10, 2026 — passed 76 days ago

First 24 hours

Ordered from the record's own fields — exposure first, because you cannot patch what you have not found.

  • Identify exposed assets running affected vendor/product/version combinations.
  • Treat as emergency remediation because CISA KEV status is present.
  • Search available logs for exploit probes, errors, authentication anomalies, or suspicious child processes matching the vulnerability class.

Affected scope

Vendor, product and version as the advisories word them.

VendorProductVersionsStatus
@tanstackarktype-adapter1.166.12Vulnerable
@tanstackarktype-adapter1.166.15Vulnerable
@tanstackeslint-plugin-router1.161.9Vulnerable
@tanstackeslint-plugin-router1.161.12Vulnerable
@tanstackeslint-plugin-start0.0.4Vulnerable
@tanstackeslint-plugin-start0.0.7Vulnerable
@tanstackhistory1.161.9Vulnerable
@tanstackhistory1.161.12Vulnerable
@tanstacknitro-v2-vite-plugin1.154.12Vulnerable
@tanstacknitro-v2-vite-plugin1.154.15Vulnerable
@tanstackreact-router1.169.5Vulnerable
@tanstackreact-router1.169.8Vulnerable

Attack characteristics

The CVSS vector, decoded. It describes the attack, not your exposure to it.

Availability

High

Confidentiality

High

Integrity

High

Scope

Changed

Attack Complexity

Low

Attack Vector

Network

Privileges Req

None

User Interaction

Required

Every base score collected

Sources score independently and disagree; each row says who scored it and under which version.

ScoreVersionSeverityExpl.ImpactSource
9.6CVSS 3.1critical2.86GitHub (CNA), @tanstack (CNA), GHSA

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

Weakness & attack patterns

  • CWE-506

Inferred from the weakness class — not observed against this CVE.

CAPEC-242 · Code InjectionCAPEC-35 · Leverage Executable Code in Non-Executable Files
  • T1195.001Supply Chain Compromise: Compromise Software Dependencies and Development Tools
  • T1195.002Supply Chain Compromise: Compromise Software Supply Chain
  • T1027.009Obfuscated Files or Information: Embedded Payloads

CISA KEV details

CISA lists a CVE here once it has evidence of exploitation against real targets.

Listed

May 27, 2026

Federal deadline

Jun 10, 2026

passed 76 days ago

Ransomware use

Known

CISA records ransomware use only for campaigns it has confirmed, so “Unknown” means unrecorded, not ruled out. The deadline binds US federal agencies; for everyone else it is a date to argue against.

Public exploit

Capability, not use: code existing is a different claim from anyone running it.

Repositories

44

1 of the 5 sampled are weaponized

Detection

Read off the CVSS vector and the weakness class. Starting points, not rules we have tested.

  • Search application, proxy, and WAF logs for requests touching /*, /router.
  • Prioritize edge telemetry for network-reachable arktype-adapter, eslint-plugin-router, eslint-plugin-start, history, nitro-v2-vite-plugin, react-router, react-router-devtools, react-router-ssr-query, react-start, react-start-client, react-start-rsc, react-start-server, router-cli, router-core, router-devtools, router-devtools-core, router-generator, router-plugin, router-ssr-query-core, router-utils, outer-vite-plugin, solid-router, solid-router-devtools, solid-router-ssr-query, solid-start, solid-start-client, solid-start-server, start-client-core, start-fn-stubs, start-plugin-core, start-server-core, start-static-server-functions, start-storage-context, valibot-adapter, virtual-file-routes, vue-router, vue-router-devtools, vue-router-ssr-query, vue-start, vue-start-client, vue-start-server, zod-adapter, @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.
  • Monitor for scanner or exploit-pattern traffic after 44 public PoC repositories were reported.
web/proxy/WAF logsapplication logsnetwork IDS/IPSEDR process telemetryhost service logs

Timeline

What happened to this CVE, newest first — with the readings a source repeats on a schedule counted underneath rather than listed.

  1. 2026
  2. Added · CVSS 3.1 9.6 (AV:N)

    Jun 17, 2026 · NVD

  3. Added to CISA KEV catalog

    May 27, 2026 · CISA

  4. Initial · CVE published

    May 12, 2026 · NVD

  5. Added · GHSA-g7cv-rxg3-hmpx published (critical)

    May 12, 2026 · GitHub Security Advisory

References

8 on the record

Elsewhere on this site

Not in any source we poll

Listed rather than left blank: an empty field and an unmeasured one look identical on screen, and only one is a reason to look elsewhere.

  • No confirmed IOCs, IP addresses, domains, file hashes, or malware artifacts supplied.
  • No organization-specific asset inventory, compensating-control status, or patch deployment evidence supplied.
  • No exploit packet captures, log samples, or incident case IDs supplied.
Answered from this record1

What should defenders know first?

CVE-2026-45321 is Malware in 42 @tanstack/* packages exfiltrates cloud credentials, GitHub tokens, and SSH keys, a critical vulnerability affecting arktype-adapter, eslint-plugin-router, eslint-plugin-start, history, nitro-v2-vite-plugin, react-router, react-router-devtools, react-router-ssr-query, react-start, react-start-client, react-start-rsc, react-start-server, router-cli, router-core, router-devtools, router-devtools-core, router-generator, router-plugin, router-ssr-query-core, router-utils, outer-vite-plugin, solid-router, solid-router-devtools, solid-router-ssr-query, solid-start, solid-start-client, solid-start-server, start-client-core, start-fn-stubs, start-plugin-core, start-server-core, start-static-server-functions, start-storage-context, valibot-adapter, virtual-file-routes, vue-router, vue-router-devtools, vue-router-ssr-query, vue-start, vue-start-client, vue-start-server, zod-adapter, @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 from @tanstack, npm. The current evidence lists it in CISA KEV, and the exploit status is: Yes: CISA KEV signal present. Public exploit evidence is: 44 public PoC repositories reported; 1 marked weaponized in current dataset. The affected-version evidence is listed in the key facts and affected products tables. Defenders should first verify whether exposed or business-critical assets run those versions, then apply vendor patches or mitigations, restrict reachable attack surface, and preserve logs for detection review. CVSS 9.6 describes technical severity, while EPSS 2% helps estimate near-term exploit likelihood; neither replaces asset context. Unknown fields should remain explicit in tickets, and threat actor, IOC, victimology, or payload claims should not be added unless a cited source supports them. Monitor CISA KEV, vendor advisories, NVD changes, public PoC repositories, and internal telemetry for update triggers.