TL;DR: A credential-stealing worm poisoned 32 @redhat-cloud-services npm packages in a 72-second burst, then harvested SSH keys, tokens, and cloud secrets during install before committing them to attacker-controlled repos, according to AccuKnox. The incident shows why kernel-level runtime enforcement now matters more than after-the-fact detection when trusted software can become an identity theft vehicle.
Editorial analysis by NHI Mgmt Group, based on content published by AccuKnox: “Red Hat NPM Supply Chain Attack: Runtime Defense Case Against 32 Poisoned Packages in 72 Seconds”.
By the numbers:
- 32 @redhat-cloud-services npm packages were poisoned in the attack.
- The packages carried close to 10 million collective downloads.
- The worm published across a 72-second window.
Key questions
Q: What fails first when a poisoned npm package runs during install?
A: The first failure is trust in the install boundary.
Q: Why do compromised CI/CD credentials make supply chain attacks much worse?
A: CI/CD credentials often sit at the centre of publish, build, and deployment workflows, so one stolen token can reach many repositories and environments.
Q: How do security teams know if runtime protection is actually working?
A: Look for evidence that suspicious behaviour is detected fast enough to contain it before the session or workload expands the blast radius.
Practitioner guidance
- Lock down package install execution Block unknown lifecycle scripts on build runners and CI nodes so preinstall and postinstall hooks cannot execute by default.
- Reduce secrets on ephemeral build systems Keep SSH keys, npm tokens, GitHub tokens, and cloud credentials off runners unless a job absolutely requires them, and scope each secret to the shortest possible task.
- Enforce kernel-level file and process policy Use inline controls to deny unauthorized reads of secret paths and unapproved process execution before the syscall returns.
Bottom line: A poisoned npm package can turn a normal install into a credential theft event because lifecycle hooks execute before application code runs.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Install-time package execution is now an identity compromise problem, not just a software integrity problem. The article shows that a poisoned dependency can steal secrets the moment it is installed, which means the compromise boundary sits inside the build process itself. That shifts governance from package trust to execution control, because the real asset is not the package but the credentials it can reach. Practitioners should treat package install as an identity-sensitive event.
A few things that frame the scale:
- 59% of compromised machines in a major 2025 supply chain attack were CI/CD runners rather than personal workstations, according to the State of Secrets Sprawl 2026.
- The blast radius of the Salesloft-Drift OAuth supply chain attack was 10 times greater than earlier incidents in which attackers breached Salesforce directly.
A question worth separating out:
Q: How can organisations know whether package-related secret exposure is actually under control?
A: Look for three signals: fewer long-lived credentials in developer paths, narrower privilege on the secrets that remain, and visible enforcement for package provenance in pipelines. If build and import events can still touch high-value secrets, control is not yet working. You should be able to map every sensitive secret to a short-lived, explicitly owned use case.
👉 Read our full editorial: Runtime defense for poisoned npm packages: what stops AI-era theft