LiveActive security incident?Get immediate response
CVE Record

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.

CriticalCVSS 9.6Known exploitedUpdated
Glexia's TakeSource changedcritical

Security readout for executives and security teams

Plain-English summary

Attackers published 84 credential-stealing releases across 42 legitimate @tanstack packages during a six-minute window. Organizations that installed or executed those versions may have exposed cloud credentials, GitHub tokens, SSH keys, and other sensitive data. Because publication used TanStack’s trusted identity, ordinary publisher-trust checks were insufficient.

Executive priority

Immediate. Inventory affected dependencies, isolate impacted build environments, and begin credential rotation today. Treat confirmed installation or execution as a potential credential compromise, not merely a vulnerable dependency. Prioritize environments holding production cloud access, publishing permissions, source-code access, or SSH credentials.

Technical view

The attacker reportedly chained an unsafe pull_request_target workflow, cross-boundary GitHub Actions cache poisoning, and runtime extraction of an OIDC token. This enabled authenticated npm publication through the legitimate trusted-publisher binding without modifying the publishing workflow. Each affected package received two malicious versions.

Likely exposure

Exposure requires checking dependency manifests, lockfiles, package-manager caches, build records, containers, and deployed artifacts for the exact malicious versions. Systems where an affected release was installed or executed with access to developer, CI, cloud, GitHub, or SSH credentials warrant incident-response handling. The supplied affected list is incomplete, showing 20 of 42 packages.

Exploitation context

CISA KEV inclusion supports treating this as exploited in the wild. The source bundle describes an actual supply-chain compromise on May 11, 2026, rather than a theoretical weakness. Evidence does not establish which downstream organizations were compromised or whether every installation resulted in credential theft.

Researcher notes

The trusted OIDC publication identity does not prove package integrity because the runner token was reportedly extracted at runtime. Investigation should correlate package resolution timestamps with CI execution, credential access, and subsequent authentication events. Obtain the complete 42-package version list from the advisory; the supplied structured affected section contains only 20 packages.

Mitigation direction

  • Remove or replace every identified malicious package version using current TanStack guidance.
  • Rotate credentials accessible to affected developer, CI, build, and deployment environments.
  • Revoke exposed GitHub tokens, cloud credentials, SSH keys, and active sessions.
  • Rebuild affected artifacts from a verified clean dependency set and trusted environment.
  • Review TanStack and CISA guidance for additional packages or remediation updates.

Validation and detection

  • Search manifests and lockfiles for every malicious package and version listed by TanStack.
  • Inspect package caches, build logs, containers, and deployed artifacts for affected releases.
  • Review GitHub, cloud, SSH, and CI audit logs for suspicious credential use.
  • Confirm revoked credentials no longer authenticate and replacements are stored securely.
  • Verify rebuilt artifacts resolve only to versions TanStack identifies as clean.
Prepared
Confidence
high
Sources
4

The source record changed after analysis: Material source record changed after analysis.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-506: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Credential and access behavior lookup

The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-45321 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.6 (3.1)
Known Exploited
Yes
Published

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

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
5Timeline events
1ADP providers
6Source links

CISA KEV status

Status
Known exploited
Source
CISA-ADP
Date added
KEV reference

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: activeAutomatable: noTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.6CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H2.86GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.6Critical
CVSS 3.1 vector shape for CVE-2026-45321Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

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

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. Added to KEVCISA-ADP

    CISA Known Exploited Vulnerabilities metadata lists this CVE as known exploited.

  4. ADP timelineCISA-ADP

    CVE-2026-45321 added to CISA KEV

  5. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvcother:kev
  • 2026-05-27T00:00:00.000Z: CVE-2026-45321 added to CISA KEV
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
@tanstackarktype-adapter1.166.12, 1.166.15Listed
@tanstackeslint-plugin-router1.161.9, 1.161.12Listed
@tanstackeslint-plugin-start0.0.4, 0.0.7Listed
@tanstackhistory1.161.9, 1.161.12Listed
@tanstacknitro-v2-vite-plugin1.154.12, 1.154.15Listed
@tanstackreact-router1.169.5, 1.169.8Listed
@tanstackreact-router-devtools1.166.16, 1.166.19Listed
@tanstackreact-router-ssr-query1.166.15, 1.166.18Listed
@tanstackreact-start1.167.68, 1.167.71Listed
@tanstackreact-start-client1.166.51, 1.166.54Listed
@tanstackreact-start-rsc0.0.47, 0.0.50Listed
@tanstackreact-start-server1.166.55, 1.166.58Listed
@tanstackrouter-cli1.166.46, 1.166.49Listed
@tanstackrouter-core1.169.5, 1.169.8Listed
@tanstackrouter-devtools1.166.16, 1.166.19Listed
@tanstackrouter-devtools-core1.167.6, 1.167.9Listed
@tanstackrouter-generator1.166.45, 1.166.48Listed
@tanstackrouter-plugin1.167.38, 1.167.41Listed
@tanstackrouter-ssr-query-core1.168.3, 1.168.6Listed
@tanstackrouter-utils1.161.11, 1.161.14Listed
@tanstackouter-vite-plugin1.166.53, 1.166.56Listed
@tanstacksolid-router1.169.5, 1.169.8Listed
@tanstacksolid-router-devtools1.166.16, 1.166.19Listed
@tanstacksolid-router-ssr-query1.166.15, 1.166.18Listed
@tanstacksolid-start1.167.65, 1.167.68Listed
@tanstacksolid-start-client1.166.50, 1.166.53Listed
@tanstacksolid-start-server1.166.54, 1.166.57Listed
@tanstackstart-client-core1.168.5, 1.168.8Listed
@tanstackstart-fn-stubs1.161.9, 1.161.12Listed
@tanstackstart-plugin-core1.169.23, 1.169.26Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-506 · source CWE mapping

Embedded Malicious Code

Embedded Malicious Code represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.