the feed MANY MINDED · THE BRIEF
SECURITY · friction · impact 3/5 · 2026-08-04 · npm

A worm rewrote 1,557 package versions in two hours

ChainDrop hijacked maintainer credentials across 435 npm packages, harvesting the tokens it needed to publish the next wave.

A self-propagating worm tracked as ChainDrop republished 1,557 poisoned versions across 435 npm packages on 4 August, spanning many unrelated maintainer accounts. The burst ran roughly from 09:35 to 11:44 UTC, with the earliest known malicious release logged at 09:35.

The design is what makes it notable. Rather than compromising one maintainer and waiting, the worm harvests credentials from each machine it reaches — npm authentication tokens, cloud provider credentials including AWS instance metadata and ECS, Vault and Kubernetes secrets, SSH private keys, and GitHub Actions and CI secrets — and each successful harvest supplies the publishing rights for the next wave. It injects obfuscated loader files into package tarballs and wires them into preinstall hooks, so the code runs during dependency resolution rather than when anything is imported: installing is enough. Its command-and-control uses an Ethereum dead drop, letting the operators repoint infrastructure without shipping a hardcoded domain that could be seized. The approach follows the earlier Shai-Hulud worm.

The open-source package ecosystem is genuine infrastructure for abundance — it is the reason a person with a laptop can assemble software that would have taken a funded team a decade ago, and it costs nothing. That shared foundation is also a single surface, and self-replicating credential theft is the attack it is least well defended against, because the trust between maintainers is the point of the system.

One caveat on the numbers: counts differ between trackers and were still moving while the incident was in progress, with other reporting citing a considerably larger package count. The figures here are one security vendor's confirmed tally at the time of publication.

Source: Semgrep