TanStack Supply Chain Breach Exposes Critical Vulnerabilities in May 2026 GitHub Actions Ecosystem
TL;DR
TanStack Supply Chain Breach: When "Trusted" Software Turns Against You
On May 11, 2026, the developer world got a brutal wake-up call. Between 19:20 and 19:26 UTC, the TanStack npm namespace—a cornerstone of modern web development—was hijacked by a threat actor known as TeamPCP. In those six minutes, they pushed 84 malicious versions across 42 different @tanstack/* packages.
This wasn't your run-of-the-mill typo-squatting attack. The attackers didn't just upload bad code; they compromised the actual build pipeline. By exploiting vulnerabilities in GitHub Actions, they injected a credential-stealing worm directly into the supply chain. The kicker? Every single one of those malicious packages carried valid SLSA (Supply-chain Levels for Software Artifacts) provenance.
The Illusion of Trust
This is a watershed moment for software security. For the first time, we’ve seen a malicious npm package ship with valid SLSA Build Level 3 provenance. Think about that for a second. The build process was so thoroughly compromised that the security attestations—the very things meant to prove a package is safe—were technically accurate but fundamentally malicious.
As detailed in the incident follow-up published by TanStack, the code was designed to trigger the moment you ran npm install. Once active, it went hunting for everything: AWS keys, GCP credentials, Kubernetes configs, GitHub tokens, and SSH keys. It then quietly exfiltrated that data via the Session/Oxen network. If you were running these packages, your secrets were essentially being broadcast to the attackers in real-time.
The Anatomy of the Attack
TeamPCP—who you might know by their other aliases like DeadCatx3, PCPcat, or ShellForce—didn't stop with TanStack. They deployed a variant of the "Mini Shai-Hulud" worm. Within a five-hour window, the infection spread to over 170 packages across both npm and PyPI.
The npm supply chain compromise postmortem clarifies that while individual npm accounts weren't necessarily hacked, the attackers found a back door through GitHub Actions pull_request_target workflows. They essentially tricked the CI/CD pipeline into doing the heavy lifting for them.
| Metric | Detail |
|---|---|
| Incident Date | May 11, 2026 (19:20–19:26 UTC) |
| Affected Packages | 42 @tanstack/* packages |
| Malicious Versions | 84 total versions |
| Provenance Status | Valid SLSA Build Level 3 (Compromised) |
| Exfiltration Method | Session/Oxen network |
| Primary Threat Actor | TeamPCP / DeadCatx3 |
Why Traditional Security Failed
We’ve spent years telling developers to "check the provenance" and "verify the signatures." But what happens when the build environment itself is the liar?
Because the compromise happened at the source, the automated trust mechanisms did exactly what they were programmed to do: they verified a "trusted" build that happened to contain a malicious payload. This isn't just a TanStack problem. We’ve seen similar patterns in recent attacks on Trivy, Checkmarx KICS, LiteLLM, and the Bitwarden CLI. It’s clear we are looking at a coordinated, high-level campaign aimed directly at the heart of CI/CD infrastructure.
If you were using the compromised versions, the official security advisory is clear: assume the worst. The fact that TeamPCP is working in tandem with the Vect ransomware group is the final nail in the coffin. They aren't just stealing data; they are harvesting credentials to facilitate full-scale destructive attacks later on.
The Cleanup: What You Need to Do Now
If your CI/CD pipelines touched these packages, you need to act as if your entire environment is compromised. Here is the reality of the situation:
- Burn it down (or at least audit it): Treat every CI/CD environment or dev machine that touched these packages as a crime scene.
- Rotate everything: Don't just change your passwords. Rotate every API key, cloud token, and SSH key that could have been accessed by those machines. Assume they are already in the hands of the attackers.
- Trace the breadcrumbs: Look through your CI/CD logs for any
npm installactivity or weird outbound network traffic around May 11. - Clean your dependencies: Update to the safe versions listed in the official package registry tracking. Do not assume your current lockfile is safe.
- Watch for lateral movement: Since these attackers are linked to ransomware, keep a close eye on your internal network. They’re looking to move from your build server to your production environment.
The Fragility of Automation
The "Mini Shai-Hulud" worm is a grim reminder that our modern build pipelines are held together by a fragile web of trust. By targeting GitHub Actions, TeamPCP effectively bypassed the perimeter defenses we’ve spent a decade building. We’ve been operating under the assumption that if the build environment is automated and "proven," it must be secure. This incident proves that assumption is a dangerous fallacy.
For those who want to get into the weeds, the TanStack router repository issue tracker contains a deep dive into how the OIDC token extraction actually worked. It’s a sobering read on how easily a pipeline can be manipulated.
As the investigation drags on, the message to the development community is simple: stop trusting the pipeline blindly. We’ve reached a point where the integrity of the build environment can no longer be assumed—it must be verified, audited, and treated with the same skepticism we apply to the code itself. Stay vigilant, because the threat actors certainly aren't sleeping.