TL;DR: Shai Hulud exploited long-lived developer, CI, GitHub, npm, and cloud credentials to spread through normal package workflows, with more than 25,000 GitHub repositories showing signs of exposure and hundreds of npm packages republished, according to Apono. Standing access, not the initial compromise, is the real blast-radius multiplier.
Editorial analysis by NHI Mgmt Group, based on content published by Apono: “What Is the Shai Hulud npm Worm and How to Protect Against It”.
Key questions
Q: What breaks when a compromised package can read secrets during installation?
A: The main failure is that package installation becomes an identity event.
Q: Why do long-lived NHI credentials increase supply-chain risk?
A: They increase supply-chain risk because build systems, package installs, and developer tools can harvest and reuse them without a separate exploit chain.
Q: What are the signs that package-publishing access is becoming a governance problem?
A: Look for dormant publishing tokens, unreviewed maintainer accounts, package releases that do not match change records and automation identities with more reach than the task requires.
Practitioner guidance
- Eliminate standing publishing credentials Move npm publishing, repository write access and cloud API use toward short-lived, task-scoped authorization instead of reusable long-lived tokens.
- Remove secrets from CI and developer environments Stop storing durable tokens in pipelines, local config files and cached environment variables where preinstall scripts or build steps can read them.
- Constrain maintainer and automation privileges Review which identities can publish packages, alter repository settings or mint new tokens, then narrow those rights to the minimum reachable scope.
Bottom line: Shai Hulud turned ordinary package installation and publishing paths into a credential propagation channel by exploiting long-lived secrets.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Standing credential sprawl is the real blast-radius multiplier: Shai Hulud succeeded because the compromised identities already had broad, persistent reach across repositories, registries and cloud. That is not a malware sophistication story. It is a governance failure in which durable access outlived the task it was meant to support. The practitioner conclusion is that exposure should be measured by reachable privilege, not by the point of initial compromise.
A few things that frame the scale:
- 30.9% of organisations store long-term credentials directly in code, according to the Ultimate Guide to NHIs.
- 71% of NHIs are not rotated within recommended time frames, increasing the risk of compromise over time, according to the Ultimate Guide to NHIs.
A question worth separating out:
A: Prioritise JIT access first when the immediate issue is durable, reusable credentials that can be replayed across systems. Rotation still matters, but it does not remove the standing access window that lets a worm move from one compromised environment to another before anyone notices.
👉 Read our full editorial: Shai Hulud npm worm exposed the cost of standing credential sprawl