Microsoft Threat Intelligence has detailed ChainDrop, a self-propagating npm supply chain attack that pushed malicious releases into more than 400 packages across unrelated publishers, including keyv, flat-cache, and cache-manager. StepSecurity counted 444 infected packages and 2,212 versions, while Aikido Security later put the footprint at 868 packages. Combined monthly downloads of affected packages exceed 2 billion.
The worm, built on the open-source Mini Shai-Hulud credential stealer, first appeared in keyv 6.0.0 after the compromise of maintainer Jared Wray’s GitHub account. A preinstall hook runs a heavily obfuscated Bun-based payload that harvests npm, GitHub, cloud, Kubernetes, and HashiCorp Vault credentials from developer machines and CI/CD runners.
Stolen npm publishing tokens let the malware download a publisher’s latest tarball, insert itself, bump the patch version, and republish, sometimes with valid GitHub Actions provenance. It also plants hooks in Claude Code and VS Code configuration files for persistence. Exfiltrated data is encrypted and sent to an attacker-controlled domain resolved through an Ethereum contract, a technique dubbed EtherHiding.
Microsoft says any workstation or build runner that installed an affected package with lifecycle scripts enabled should be treated as compromised. Teams should rotate npm tokens, GitHub credentials, SSH keys, and cloud secrets from a clean environment, and rebuild downstream artifacts. The npm registry removed many poisoned versions within two hours, but newly compromised publisher accounts kept the worm spreading. npm 12 blocks unapproved install scripts by default; the –ignore-scripts flag and package aging policies also cut exposure.

