# Shai-Hulud 2.0: worm backdoors ~800 npm packages incl. Zapier, PostHog, Postman, ENS · pwn.watch > A second wave of the Shai-Hulud worm ran in npm preinstall scripts (setup_bun.js), stole credentials with TruffleHog and pushed them to public GitHub repos, then republished packages with any npm tokens it found. Datadog counted 796 backdoored packages with 20M+ weekly downloads; Wiz saw 25,000+ attacker repos. Page: https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025 · generated 2026-10-22T21:08:49.695Z ## Status - Severity: critical · status: closed · patch: patched - Product: npm packages (posthog-js, posthog-node, @postman/*, Zapier, ENS Domains, AsyncAPI and others) - Started: 2025-11-24 · closed: 2025-11-26 - Affected: e.g. posthog-node 4.18.1, 5.13.3, 5.11.3; posthog-js 1.297.3; posthog-react-native 4.11.1; @postman/tunnel-agent 0.6.5-0.6.7 (full lists in sources) - Fixed in: Malicious versions unpublished; use versions published after 2025-11-24 per each vendor ## Follow this incident - RSS (one item per update): https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025/feed.xml - JSON Feed: https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025/feed.json - Full data (timeline, sources, posts, agentBrief): https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025.json - This file: https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025/llms.txt ## Updates (newest first) - 2025-11-26: GitHub privatizes malicious repos; public count drops to ~300 (https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack) - 2025-11-26: PostHog publishes its post-mortem (https://posthog.com/blog/nov-24-shai-hulud-attack-post-mortem) - 2025-11-24: First compromised package published (03:10 UTC) (https://panther.com/blog/a-data-driven-analysis-of-the-sha1-hulud-2-0-campaign) - 2025-11-24: PostHog SDKs compromised (04:11 UTC); removed and tokens revoked by 09:30 UTC (https://posthog.com/blog/nov-24-shai-hulud-attack-post-mortem) - 2025-11-24: Postman unpublishes 17 infected packages (51 versions) (https://blog.postman.com/engineering/shai-hulud-2-0-npm-supply-chain-attack/) - 2025-11-24: Last compromised package seen (~17:00-18:00 UTC) (https://securitylabs.datadoghq.com/articles/shai-hulud-2.0-npm-worm/) ## Fix brief # Security brief: Shai-Hulud 2.0: worm backdoors ~800 npm packages incl. Zapier, PostHog, Postman, ENS Source: https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025 · status: closed (closed Nov 26, 2025) · severity: critical · updated Nov 26, 2025 ## Patch status **PATCHED: fixed releases exist. Upgrade to a fixed version.** ## What it is A second wave of the Shai-Hulud worm ran in npm preinstall scripts (setup_bun.js), stole credentials with TruffleHog and pushed them to public GitHub repos, then republished packages with any npm tokens it found. Datadog counted 796 backdoored packages with 20M+ weekly downloads; Wiz saw 25,000+ attacker repos. Severity detail: Self-replicating supply-chain worm; preinstall credential theft - Product: npm packages (posthog-js, posthog-node, @postman/*, Zapier, ENS Domains, AsyncAPI and others) ## Affected versions - e.g. posthog-node 4.18.1, 5.13.3, 5.11.3; posthog-js 1.297.3; posthog-react-native 4.11.1; @postman/tunnel-agent 0.6.5-0.6.7 (full lists in sources) ## Check whether you're affected No generic command applies (the product is a hosted service, appliance or desktop app). Check the installed version in its admin UI / About screen and compare with the versions above. ## Fix Upgrade to one of these fixed versions (or later on the same branch): - Malicious versions unpublished; use versions published after 2025-11-24 per each vendor After upgrading, re-run the checks above and redeploy/restart the affected services. ## Secrets to rotate This incident involves possible credential exposure. Rotate any credentials (API keys, tokens, env vars, SSH keys) that were present on affected systems or in affected builds while vulnerable/compromised versions were installed, and review access logs. ## Latest updates - Nov 26, 2025: GitHub privatizes malicious repos; public count drops to ~300 - Nov 26, 2025: PostHog publishes its post-mortem - Nov 24, 2025: First compromised package published (03:10 UTC) - Nov 24, 2025: PostHog SDKs compromised (04:11 UTC); removed and tokens revoked by 09:30 UTC - Nov 24, 2025: Postman unpublishes 17 infected packages (51 versions) - Nov 24, 2025: Last compromised package seen (~17:00-18:00 UTC) ## Write-ups & news - [Shai-Hulud 2.0 Supply Chain Attack: 25K+ Repos Exposing Secrets](https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack) - [The Shai-Hulud 2.0 npm worm: analysis, and what you need to know](https://securitylabs.datadoghq.com/articles/shai-hulud-2.0-npm-worm/) - [Post-mortem of Shai-Hulud attack on November 24th, 2025](https://posthog.com/blog/nov-24-shai-hulud-attack-post-mortem) - [Shai-Hulud 2.0 npm supply-chain attack](https://blog.postman.com/engineering/shai-hulud-2-0-npm-supply-chain-attack/) - [A Data-Driven Analysis of the Sha1-Hulud 2.0 Campaign](https://panther.com/blog/a-data-driven-analysis-of-the-sha1-hulud-2-0-campaign) --- Machine-readable: https://pwn.watch/i/shai-hulud-2-npm-worm-november-2025.json · all incidents: https://pwn.watch/incidents.json. Verify against the vendor advisory before changing production systems.