AI SpectrumAI Spectrum
AI SPECTRUM
TechnologyHealthcarePolicyLeadershipResearchIndustry
Events
Events

Shai-Hulud worm hit 172 packages with valid security badges. Here's what defenders must do now.

A supply chain worm bypassed SLSA provenance, stole AI agent credentials, and wipes machines if you revoke tokens too fast. Here's the six-step response plan.

By Admin

May 13, 2026•Updated May 13, 2026•3 min read
Editorial Policy•Corrections Policy
Shai-Hulud worm hit 172 packages with valid security badges. Here's what defenders must do now.
Shai-Hulud worm hit 172 packages with valid security badges. Here's what defenders must do now.

Quick Answers

What changed

A supply chain worm bypassed SLSA provenance, stole AI agent credentials, and wipes machines if you revoke tokens too fast. Here's the six-step response plan.

Why it matters

This update matters for teams tracking technology strategy, product decisions, and competitive positioning. Use this to assess near-term execution risk and opportunity.

Key numbers

  • Any developer who installed one of 172 compromised npm or PyPI packages since May 11 should treat their machine as breached.
  • Between 19:20 and 19:26 UTC on May 11, the worm published 84 malicious versions across 42 TanStack npm packages, all carrying valid SLSA Build Level 3 provenance attestations.
  • 'OIDC scope is the actual control that matters here, not provenance, not 2FA,' said Peyton Kennedy, senior security researcher at Endor Labs.

Any developer who installed one of 172 compromised npm or PyPI packages since May 11 should treat their machine as breached. The Mini Shai-Hulud worm, attributed to threat group TeamPCP, harvests AWS keys, SSH private keys, GitHub tokens, Kubernetes service accounts, password manager vaults, and now Claude and Kiro AI agent configurations including MCP server auth tokens. Removing the package does not remove the worm. It plants persistence hooks in .claude/settings.json and .vscode/tasks.json that re-execute every time a developer opens a project, plus a system daemon that survives reboots. On Linux CI runners it reads /proc/pid/mem directly to extract masked secrets. One npm token description left by the worm reads: 'IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner.' That is not a bluff. Wiz confirmed a destructive daemon wipes the home directory on token revocation.

The attack is technically precise. Between 19:20 and 19:26 UTC on May 11, the worm published 84 malicious versions across 42 TanStack npm packages, all carrying valid SLSA Build Level 3 provenance attestations. The provenance was real. The packages were poisoned. The attacker forked TanStack/router, triggered a pull_request_target workflow to execute fork code on TanStack's runner, poisoned the GitHub Actions cache, and waited for a legitimate maintainer to merge to main. The release workflow restored the poisoned cache, attacker binaries extracted the OIDC token from runner memory, and 84 signed packages reached the registry before tests even failed. 'OIDC scope is the actual control that matters here, not provenance, not 2FA,' said Peyton Kennedy, senior security researcher at Endor Labs. The campaign crossed from npm into PyPI within hours, with Microsoft Threat Intelligence confirming the mistralai Python package v2.4.6 executes malicious code on import, not install, bypassing npm lockfile controls entirely. Late on May 12, the fully weaponized worm code was reportedly open-sourced, meaning any threat actor can now deploy the same chain against any misconfigured pipeline.

Security teams should run two checks immediately: find . -name 'router_init.js' -size +1M and grep for commit hash 79ac49eedf774dd4b0cfa308722bc463cfe5885c in package-lock.json. A hit means isolate and image the machine first, rotate credentials second. Do not revoke tokens before the host is forensically preserved. Block filev2.getsession[.]org and git-tanstack[.]com. Longer term, OIDC trusted publishing must be pinned to specific workflows on specific protected branches, cache keys must be isolated per trust boundary, and Python AI/ML pipelines need the same scrutiny applied to JavaScript dependencies. Most critically: AI coding agent config directories like .claude/ and .kiro/ must now be treated as credential stores on par with cloud key vaults. The worm figured that out before most security teams did.

Admin

Author description is not available yet.

View profile

Related Articles

VPN Downloads Surge in India After Temporary Telegram Ban
technology

VPN Downloads Surge in India After Temporary Telegram Ban

VPN services saw a sharp increase in downloads and sign-ups across India after authorities temporarily restricted access to Telegram over concerns about exam-related fraud. The move pushed several VPN apps up app store rankings as users sought alternative ways to access the messaging platform.

2 min read
Reliance Unveils AI Assistant for Calls, Apps and Homes as Ambani Pushes India AI Vision
technology

Reliance Unveils AI Assistant for Calls, Apps and Homes as Ambani Pushes India AI Vision

Reliance Industries unveiled a suite of AI-powered services across phone calls, mobile apps and connected homes, deepening its push into artificial intelligence. The announcements come as Mukesh Ambani seeks to position India as a creator of AI technology rather than just a consumer.

3 min read
Kevin O'Leary Cuts Utah Data Center Project in Half After Public Backlash
technology

Kevin O'Leary Cuts Utah Data Center Project in Half After Public Backlash

O'Leary agreed to remove nearly 20,000 acres from his Project Stratos data center plan in Utah following pressure from residents and state officials.

1 min read
Google's Gemini Spark Is Impressive. But What's It Actually For?
technology

Google's Gemini Spark Is Impressive. But What's It Actually For?

Google's new Gemini agent knows things users never told it. The real question is whether 'productivity' AI solves any problem worth solving.

1 min read