Shai-Hulud is a self-replicating npm supply-chain worm first detected in September 2025, with evolved variants continuing through 2026. It autonomously compromises developer environments and CI/CD pipelines to harvest cloud credentials and authentication tokens.
Latest Activity (August 2026):
- May 2026: 170+ npm packages, 404+ malicious versions
- @antv ecosystem: 639 compromised versions
- Copycat variants:
chalk-tempalte,@bitwarden/cliv2026.4.0 - Affects 25,000+ GitHub repositories
- Install-time execution: Malicious preinstall hook runs during
npm install - Payload delivery: ~10MB obfuscated Bun JavaScript runtime
- Credential harvesting: Steals NPM tokens, GitHub tokens (ghp_, gho_), CI/CD secrets
- Persistence: Drops files into
.claude/(Claude Code) and VS Code directories - Propagation: Republishes compromised packages with same pattern
If any of these files exist in your home directory, your machine is likely compromised:
cloud.json– exfiltrated cloud credentialscontents.json– stolen package contentsenvironment.json– environment variables dumptruffleSecrets.json– Truffle framework secretsbun_environment.js– malicious Bun bootstrap script
.npmrcwith suspicious auth tokens recently accessed- GitHub Actions workflows named
formatter_*in your repos - Unexpected commits with secret exfiltration artifacts
@bitwarden/cli≥ v2026.4.0chalk-tempalte(typosquat ofchalk)@antv/*ecosystem packages (639+ versions)- Any package version from May 2026 wave with suspicious preinstall hooks
- RSA-4096 encrypted outbound connections to attacker C2
- SHA256:
e71ba441d172460c01fdde2c1a9bc80f432456a70b55f625d21aa6ed77e6f49c
The included shai-hulud-verify.sh performs 6 critical checks:
- Malicious JSON files – Scans home directory for exfiltration artifacts
- Bun runtime – Flags if Bun is installed (used to bootstrap malware)
- GitHub workflows – Searches for secret exfiltration patterns
- Known packages – Checks package.json for compromised package versions
- NPM tokens – Verifies .npmrc doesn't show unauthorized access
- GitHub tokens – Checks environment for exposed GitHub credentials
bash shai-hulud-verify.shOutput interpretation:
- ✓ NONE FOUND / NOT installed / No tokens – CLEAN
- ⚠ WARNING – Requires investigation (see below)
- ✓ No malicious JSON files
- ✓ No GitHub workflow exfiltration
- ✓ No compromised packages in package.json
- ✓ No GitHub tokens in environment
- ✓ Bun not installed (or installed before May 2026)
- ⚠ Bun installed: Check installation date (
ls -la $(which bun))- Pre-May 2026: Likely legitimate
- Post-May 2026: Verify against attack timeline
- ⚠ GitHub workflows flagged: Verify they're in
/go/pkg/mod/,node_modules/, or.cache/(dependencies)- Suspicious if in active project repos with secret access
- ⚠ NPM token in .npmrc: Rotate it (
npm logout && npm login)
- Any malicious JSON files → Machine is compromised
formatter_*workflows in active repos → Investigate immediately- Recent suspicious commits with artifact uploads → Breach likely occurred
High Confidence (95%+): NOT AFFECTED
- No malicious JSON files found
- No exfiltration artifacts
- No suspicious workflow patterns in active repos
- Bun predates attack waves OR not installed
Medium Confidence (70-85%): LIKELY NOT AFFECTED
- Bun installed during attack window but no other IOCs
- Suspicious workflows only in dependency caches
- NPM token exists but no unauthorized access
Low Confidence (<70%): REQUIRES ESCALATION
- Multiple IOCs present
- Suspicious recent commits
- Unknown installation patterns
- Rotate npm token (precautionary):
npm logout && npm login - Enable GitHub secret scanning: Settings → Security
- Audit recent
npm installcommands against Cirosec IOC list - Review GitHub Actions logs for unauthorized access
- ISOLATE: Disconnect from network
- PRESERVE: Don't delete suspected files; preserve for forensics
- ESCALATE: Report to security team with findings
- ROTATE: All tokens/credentials (after isolation)
- AUDIT: Review git history for backdoors
- REBUILD: Consider fresh OS install if critical system
- INCIDENT: Declare security incident
- CONTAINMENT: Isolate all development machines
- FORENSICS: Preserve logs and artifacts
- RESPONSE: Follow incident response plan
- REMEDIATION: Rotate all compromised credentials org-wide
- Cirosec: A Collection of Shai-Hulud 2.0 IoCs
- Wiz: Shai-Hulud 2.0 Supply Chain Attack
- Sysdig: 25,000+ GitHub Repositories Affected
- Phoenix Security: Full Technical Dissection
- Microsoft: Mini Shai-Hulud & @antv Compromise
- Unit 42 (Palo Alto): npm Supply Chain Attack Overview
- Tenable: Mini Shai-Hulud FAQ
- Trend Micro: npm Supply Chain & Cloud-Targeted Variants
- GitHub: shai-hulud-detect – Detection tool with per-wave IOCs
- Wiz: wiz-research-iocs – CSV of impacted packages
- CVE-2026-45321: Mini Shai-Hulud (@antv compromise variant)
Last Updated: August 5, 2026
Script Version: 1.0
Threat Level: ACTIVE (Recent waves detected through August 2026)