Supply chain β›“ Supply Chain

Shai-Hulud Self-Replicating npm Supply Chain Worm (v1 + v2)

πŸ“… 2025-09-14 🏒 npm (Node Package Manager registry) 🦠 Shai-Hulud
Primary Source β†—

Incident Details

On September 14, 2025, the first malicious packages of the Shai-Hulud self-replicating worm appeared in the npm ecosystem. By September 16, over 180 packages were confirmed compromised, spreading across popular namespaces including @ctrl, @nativescript-community, and CrowdStrike’s namespace. The worm used stolen npm tokens to authenticate as compromised developers, identify all packages they maintained, inject malicious code, and publish new backdoored versions β€” creating a self-replicating cascade. The payload used TruffleHog to scan for secrets, harvested environment variables, exfiltrated cloud service tokens, and stole IMDS-exposed cloud keys. The worm created public GitHub repositories named ‘Shai-Hulud’ to commit stolen secrets. The first wave resulted in the theft of approximately $50 million in cryptocurrency. CISA issued an alert on September 23, 2025 for the widespread supply chain compromise. A second campaign β€” Shai-Hulud 2.0 β€” launched November 21-24, 2025, compromising more than 25,000 GitHub repositories and incorporating a destructive ‘dead man’s switch’ capable of wiping developer environments. Microsoft published detection guidance for Shai-Hulud 2.0 in December 2025.

Technical Details

Initial Attack Vector
Novel self-replicating worm injected malicious post-install scripts into npm packages by compromising developer maintainer accounts; spread autonomously by stealing npm tokens and publishing backdoored versions of other packages maintained by the same developers
Vendor / Product
npm (Node Package Manager registry)
Software Package
ngx-bootstrap, ng2-file-upload, @ctrl/tinycolor, 500+ others
Malware Family
Shai-Hulud
Supply Chain Attack
βœ… Confirmed third-party / vendor compromise

Timeline

  1. 2025-09-14 Breach occurred
  2. 2025-09-16 Publicly disclosed