← All articles

Self-spreading npm worm ChainDrop poisons over 1,300 package versions in hours

A self-propagating worm named ChainDrop tore through the npm registry on August 4, poisoning packages that huge parts of the software world depend on. It began by hijacking the GitHub account behind keyv, a caching library pulled in about 150 million times a week, then spread to sibling and downstream packages, reaching over 1,300 poisoned versions with billions of monthly downloads within hours. A preinstall script harvests credentials from developer and continuous integration environments, including AI agent tokens, cloud keys, and self-hosted CI secrets, then uses stolen npm publishing access to poison more packages. A descendant of the earlier Shai-Hulud worm, it even forged valid-looking build provenance.

Check
Compare lockfiles and resolved versions against the published affected-package list, and treat any machine that installed a poisoned version as compromised, but remove the malware's token watcher before rotating anything.
Affected
Developers and CI systems that installed a poisoned version during the attack window; the worm steals repository, registry, cloud, AI agent, and private-key credentials, then self-spreads through npm publishing access.
Fix
Rotate all reachable credentials after removing the token watcher, install with scripts disabled, pin and delay adoption of new versions, and check for injected hooks in developer tooling and continuous integration configuration.