← All insights
Security & Trust

TanStack Compromised: 42 Packages with Valid SLSA Provenance. The Gold Standard Was Forged.

84 malicious versions across 42 @tanstack/* packages. Published with valid, signed SLSA provenance certificates. Detected in 20 minutes — but 2 OpenAI employee devices were already hit. When the trust infrastructure is the attack vector, verification is not protection.

· 7 min read
Share on X LinkedIn
TanStack Compromised: 42 Packages with Valid SLSA Provenance. The Gold Standard Was Forged.

Twenty Minutes Was Not Fast Enough

On May 11, 2026, between 19:20 and 19:26 UTC, an attacker published 84 malicious versions across 42 @tanstack/* npm packages. TanStack is one of the most widely used open-source libraries in the React ecosystem — TanStack Query alone has over 40 million npm downloads per month. The malicious versions were detected publicly within 20 to 26 minutes by an external researcher. By then, the damage was done.

Two OpenAI employee devices were confirmed compromised. The malware harvested credentials, API keys, and CI/CD secrets from every machine that ran npm install during the 20-minute window. OpenAI issued an advisory on June 12 recommending that all ChatGPT and Codex desktop users on macOS update immediately.

42 @tanstack/* packages
Packages compromised
84 malicious versions published in 6 minutes. Source: TanStack postmortem, May 2026.
20-26 minutes
Detection time
Detected by external researcher ashishkurmi (StepSecurity). Source: StepSecurity, May 2026.
2 OpenAI employee devices
Confirmed casualties
Credential rotation required for all affected installs. Source: industry reporting, June 2026.

The Attack: GitHub Actions as a Weapon

The attacker exploited three GitHub Actions trust boundaries simultaneously. First, the pull_request_target 'Pwn Request' pattern — a well-known misconfiguration where workflows triggered by pull requests run with the base repository's secrets. Second, GitHub Actions cache poisoning across the fork-to-base trust boundary. Third, runtime memory extraction of the GitHub Actions OIDC token from the runner process.

With the stolen OIDC token, the attacker published packages via TanStack's trusted-publisher binding — the exact mechanism npm uses to generate and verify SLSA provenance. The malicious packages had valid, signed certificates. To npm's provenance system and every SLSA verification tool, these were indistinguishable from legitimate TanStack releases.

GitHub Actions OIDC token extraction
Attack vector
Pwn Request + cache poisoning + runtime memory extraction. Source: Orca Security, May 2026.

SLSA Provenance: Verified, Signed, Malicious

SLSA (Supply-chain Levels for Software Artifacts) is the gold standard for supply chain integrity. It provides cryptographic provenance attestations — proof that a package was built by a specific CI pipeline from a specific source commit. Organizations that verify SLSA provenance before installing packages consider themselves protected from supply chain attacks.

The TanStack compromise demonstrated that SLSA provenance can be forged when the CI pipeline itself is compromised. The attestation said 'built by TanStack/router release.yml@refs/heads/main.' That was technically true — the build did run on TanStack's GitHub Actions runner. But the code it built was not TanStack's code. The provenance verified the process, not the intent. When attackers control the process, provenance verification is a false assurance.

The React Ecosystem Exposure

TanStack Query, TanStack Router, TanStack Table, and TanStack Form are foundational libraries in the React ecosystem. They are dependencies of enterprise applications, SaaS platforms, and production dashboards across every industry. A 20-minute compromise window in these packages is not an academic exercise — it is a real-world credential theft event affecting production systems.

The frameworks most exposed are the ones most deeply integrated with the React/npm ecosystem. A Next.js application using TanStack Query for data fetching had a 20-minute window where npm install would compromise the build server. A Hugo site generating static HTML had zero exposure — no npm, no TanStack, no GitHub Actions OIDC tokens. The supply chain that does not exist cannot be forged, even with valid provenance certificates.

Share this insight
More insights