The propagation cycle has a single starting event and a repeating payload. A maintainer account is compromised by any means (phishing, credential theft, prior supply-chain breach). The attacker publishes a malicious version of a package the maintainer owns. Every developer who installs the package receives the payload. The payload's job is two-fold: exfiltrate whatever credentials it can find in the developer's environment, and then use those credentials to publish infected versions of any packages those credentials have publish authority over.
The growth dynamic is exponential in the branching factor of the dependency graph. A maintainer with one compromised account owns N packages. Each of those packages reaches M install environments. Each install environment harvests credentials from K maintainers. Each of those maintainers owns some more packages. The next round of infection is NMK times the previous round, bounded only by detection and revocation.
Classical worms worked because the network was full of similar services with the same vulnerability. Self-propagating supply chain works because the package ecosystem is full of similar maintainers with the same authority model. The vulnerability the worm exploits is not a bug in any package. It is the ecosystem's trust decision: an npm token stored on a developer's machine can, by default, publish to any of that developer's packages, and developers routinely run npm install in environments that have publish tokens accessible.
Exhibits
Shai-Hulud: The First npm Worm. The exemplar. An npm package compromised via maintainer-account takeover shipped a harvester that stole npm tokens from every installation environment it reached. The harvested tokens were used by the same payload to publish infected versions of packages those developers maintained. Each new infection became a new propagator. The takedown chased a branching infection graph. The registry's protocol had no concept of "this publish is part of a worm," so each new publish looked locally legitimate. The only evidence of the worm was the pattern in the publish stream, which registry side detection had to build after the fact.