ChainDrop: Inside a Self-Propagating npm Worm

By George Bailey   Published: 08/11/26   Updated: 10/09/26   3 min read
ChainDrop: Inside a Self-Propagating npm Worm

What Unit 42 Found

Unit 42 says the self-propagating npm worm nicknamed ChainDrop infected more than 400 packages that are downloaded hundreds of millions of times a week, including malicious versions of keyv and cacheable-request. It detected ChainDrop running in 10 distinct environments and found 453 public GitHub repositories across five accounts that matched the worm’s exfiltration pattern.

An infected package keeps its legitimate code. The only changes are a preinstall hook and two extra files: setup.mjs, a dropper that downloads Bun 1.3.13 if needed, and math_init.js, a 727 KB obfuscated payload. The install finishes without errors while the payload runs in the background. On Russian-language hosts it exits.

Details Specific To This Analysis

What To Verify First

What Teams May Be Underestimating

Scope is wider than the published package list. Any package that a stolen npm token could publish may have received the worm, so enumerate everything the affected developer’s credentials can modify.

Source Context

This item was rebuilt from the following primary sources and original reporting:

Related In The Daily Brief

See this item in The 5-Minute Cyber Brief

Stay Current

Newer CyberExperts coverage on this topic

This article still works as background. If you want the current picture, start with the freshest related coverage below and today's brief.

Latest Daily Brief

Thursday’s brief: Cisco email gateways under attack, then PAN-OS, Nextcloud and AhsayCBS

The fastest way to catch up on what changed after this article was published.

Read Today's Brief

George Bailey

George Bailey is the byline of the CyberExperts editorial desk, the team behind the CyberExperts Daily Brief. The desk covers vulnerabilities, breaches and security news from vendor advisories, CISA alerts and other primary sources, and links those sources in every story. Questions or corrections: [email protected].

Keep Reading