Product security · Supply chain

Shai-Hulud and the npm Worm Era: Hardening Your Pipeline

Since September 2025, attackers have gone from phishing one maintainer to worms that spread through stolen publishing tokens and CI runners. Here is what happened, and the controls that actually break the chain.

Research notes

Questions that turn guidance into a review.

Use these prompts to challenge assumptions, collect evidence, and make the article actionable for engineering and security teams.

Review questions
  1. Can an outside pull request run code with access to secrets or publishing credentials?
  2. Do dependency install scripts run in CI, and which are explicitly allowed?
  3. Are releases published through trusted publishing with no long-lived tokens?
  4. Could you tell within an hour whether an affected version ran anywhere?
Evidence and signals
  • pull_request_target workflows that check out untrusted code
  • Build agents with open egress or secrets present during install
  • Maintainers without phishing-resistant 2FA
  • Lockfile changes adding new transitive dependencies
Primary references

References support the review approach; they do not replace architecture-specific threat modeling or validation.

Start with a focused conversation

Want to know how far a malicious dependency could get in your pipeline?

Share your targets, deadline, and any compliance driver. We reply with a proposed scope, test approach, and timeline. There is no obligation.