Back to News

ChainDrop Worm Infects 444 npm Packages: Why Your Web Dev Pipeline Could Be Compromised

ChainDrop Worm Infects 444 npm Packages: Why Your Web Dev Pipeline Could Be Compromised

On 4 August 2026, security researchers pulling apart a suspicious npm release found something that should worry every UK team that ships software: a self-replicating worm, dubbed ChainDrop, had quietly poisoned 444 npm packages from multiple publishers — packages that between them are downloaded roughly two billion times a month. Among the casualties were not obscure hobby projects but deep infrastructure dependencies such as keyv, flat-cache and cache-manager, the sort of libraries that sit three or four levels down in a dependency tree and end up inside almost everything without anyone consciously choosing them.

What makes ChainDrop different — and why it earns an article rather than a footnote — is the way it hides. It is a new variant of the Shai-Hulud npm worm first identified in September 2025 and named by researchers after the sandworms of Frank Herbert’s Dune. But where earlier supply-chain attacks left fingerprints in source repositories, ChainDrop propagates through tarballs — the compressed archive downloads npm actually installs — rather than through commits to a project’s source code. Scour the source on GitHub and you may find nothing wrong at all. The tampering lives in the package you download and build, not the repository you read. For UK web development teams that lean on npm inside their CI/CD pipelines, that is a genuinely new shape of risk, and the right response this week is to audit your dependencies, rotate your tokens, and start treating repository-supplied configuration as executable content. This article explains exactly why.

444
npm packages found infected by ChainDrop on 4 August 2026, spanning multiple publishers and deep infrastructure dependencies
~2bn
Combined monthly downloads of the compromised packages — the scale that turns a single worm into a systemic supply-chain event
Tarball
The infection vector: archive downloads, not source commits — so reading the repository may reveal no tampering at all
2 files
The config files it plants — .claude/settings.json and .vscode/tasks.json — so simply opening a branch can trigger infection

What researchers actually found

The discovery landed on 4 August 2026, when researchers examining the npm registry found that ChainDrop had spread across 444 packages belonging to a range of different publishers. The combined reach is what elevates the incident from a nuisance to a systemic problem: those packages are pulled down on the order of two billion times a month. Crucially, the affected list was not confined to leaf-node utilities that a developer chooses deliberately. It reached into widely-used, deep infrastructure dependencies — keyv, flat-cache and cache-manager among them — the kind of caching and key-value libraries that arrive transitively, several levels below anything a team actually lists in its own package.json.

ChainDrop is a descendant of Shai-Hulud, the npm worm first identified in September 2025 and named for the giant sandworms of Dune. The lineage matters because the family has been evolving toward stealth, and ChainDrop represents a decisive step: it moved the point of compromise out of the source repository and into the distribution artefact. When you run npm install, npm does not clone a Git repository and build from source; it downloads a pre-packaged tarball — a .tgz archive of the published files — and installs that. ChainDrop lives in the tarball. A team could review every commit in a dependency’s public repository, find it spotless, and still install a poisoned build, because the malicious code was injected into the archive after the fact rather than pushed to the branch everyone reads.

All of the infected packages were pulled from npm once identified. To help teams check their own exposure, the open-source security firm SafeDep published a list of the compromised packages and the specific versions involved, so organisations can compare it against their own lockfiles and build manifests rather than guessing. That list is the single most useful artefact to work from: supply-chain remediation is only ever as good as the inventory you check it against.

Why this evades the tools you already trust

Most dependency-scanning and code-review workflows assume the source repository is the source of truth — that if the code on the branch is clean, the artefact built from it is clean too. ChainDrop breaks that assumption. Because it tampers with the published tarball rather than the source, a scanner that audits repository commits, a reviewer reading a pull request, and a developer skimming a library’s GitHub page can all come away reassured while the installed package is compromised. Researchers describe this as the first campaign to exploit this specific gap in dependency-scanning tooling at scale — and they expect further campaigns built on the same idea. The takeaway for UK teams is uncomfortable but clear: “the source looks fine” is no longer evidence that your build is safe.

How ChainDrop spreads and self-replicates

The chronology below reconstructs how the worm operates once it reaches a machine, drawn from the researchers’ analysis. It is worth reading as a loop rather than a line: the final step feeds the first, which is precisely what makes a worm a worm.

September 2025 — Shai-Hulud identified
Researchers first document the Shai-Hulud npm worm, naming it after the sandworms of Dune. It establishes the template that ChainDrop later refines: self-replication through the npm ecosystem rather than a one-off malicious package.
The trigger — a planted config file
ChainDrop places malicious startup hooks into repository configuration files — .claude/settings.json and .vscode/tasks.json. Simply opening an infected branch in VS Code or Claude Code can execute the hook and begin the infection, with no explicit install step by the developer.
The sweep — harvesting secrets
Once triggered, it scours the workspace for npm tokens with full write privileges, plus cloud keys and secrets held in shell configuration files, environment variables and even live process memory, encrypting and exfiltrating anything it finds.
The replication — rebuilding tarballs
If it captures an npm token, it downloads the tarballs of every package that token can publish to, rebuilds them to include its own payload, and republishes — self-replicating with no evidence in any source repository.
The lateral move — GitHub credentials
It also hunts for GitHub credentials. If found, it uses the GitHub API to enumerate accessible repositories and branches and commits its malicious configuration directly into them — seeding the next round of infections for anyone who later opens those branches.
4 August 2026 — 444 packages found infected
Researchers find ChainDrop has spread to 444 npm packages from multiple publishers, collectively downloaded around two billion times a month, including keyv, flat-cache and cache-manager. Affected packages are pulled from npm.
Early August 2026 — SafeDep publishes the list
Open-source security firm SafeDep publishes the compromised packages and versions so teams can check their lockfiles and build manifests against a definitive inventory rather than relying on memory.
15–16 August 2026 — UK teams take stock
With the mechanism understood and the list public, the practical question for UK development shops shifts from “what happened” to “is any of this inside our pipelines” — and what to rotate, audit and change.

Where the exposure sits in a typical pipeline

ChainDrop does not need a clever exploit to win; it needs a handful of ordinary conditions to be true at once. The bars below are an illustrative view of how commonly each of those conditions is left in place across typical small and mid-sized UK development teams — a higher bar means a wider, more frequently observed gap, not a measured statistic for any one organisation.

Repo config treated as trusted, not executable
86%
Long-lived npm tokens with full write access
81%
Only main audited, not every branch
78%
Tarball / lockfile integrity not verified in CI
73%
Secrets stored in shell configs & env vars
68%
No MFA / hardware keys on npm & GitHub
61%
CI auto-pulls latest transitive dependencies
57%

The gap the industry has been ignoring

The reason ChainDrop matters beyond its 444 packages is what it proves about the tooling most teams rely on. For years the mental model of a “secure supply chain” has centred on the source: review the code, scan the repository, trust the build. ChainDrop’s whole design is to slip beneath that model by tampering with the distributed artefact instead. The donut below is an illustrative reflection of how much of the conventional dependency-scanning picture is oriented toward source review rather than artefact verification — and therefore how much of it a tarball-level attack can walk straight past.

68%
Illustrative share of a typical dependency-security posture that assumes “clean source equals clean build” — exactly the assumption a tarball-level worm like ChainDrop is designed to defeat.

The questions to put to your build pipeline this week

You do not need to reverse-engineer the worm to reduce your exposure. You need to ask a short set of pointed questions about how your pipeline pulls, trusts and publishes code — and notice which ones your team cannot answer confidently. The grid below ranks those questions by how much they matter in an attack of this shape. Anything you cannot clearly answer in the “high” band is telling you where your risk is concentrated right now.

Supply-chain exposure — ranked by priority after ChainDrop
Have you checked your lockfiles and build manifests against SafeDep’s list of compromised packages and versions? High
Have you searched every branch — not just main — for unexpected .claude/settings.json or .vscode/tasks.json files? High
Have you rotated npm tokens that carry full write/publish privileges, and cut them to the narrowest scope possible? High
Have you rotated GitHub credentials that could let an attacker enumerate and commit to your repositories? High
Does your CI verify tarball or lockfile integrity, rather than trusting whatever npm resolves at build time? Mid
Are secrets kept out of shell configs and plain environment variables, in a managed secret store instead? Mid
Is MFA — ideally with hardware keys — enforced on your npm and GitHub accounts? Mid
Do you pin dependency versions and control transitive updates, rather than auto-pulling the latest on every build? Low

What a supply-chain compromise can cost a UK business

The financial shape of a dependency compromise depends less on your headcount than on where the poisoned code ends up — a marketing site is a very different problem from a build that ships to paying customers. The bands below are indicative, in pounds sterling, and assume an organisation that has to detect, investigate, rotate credentials and rebuild rather than one that caught the problem at the pipeline before anything shipped.

Business size Typical npm footprint What a poisoned dependency can reach Indicative cost if poorly prepared
Micro (1–9 staff) A handful of client sites and one shared CI pipeline Deployment tokens, a few production sites, client contact data £3,000–£20,000
Small (10–49 staff) Multiple apps, shared component libraries, automated releases Publish tokens, private packages, cloud keys, customer-facing builds £20,000–£90,000
Medium (50–249 staff) A monorepo or many services, internal registry, broad CI/CD Fleet-wide credentials, production data paths, downstream customers £90,000–£400,000
Regulated / SaaS (any size) Software shipped to customers under contract or compliance scope Customer environments, special-category data, ICO and contractual exposure £120,000–£600,000+

Reactive versus proactive: two ways to run a build pipeline

Reactive posture

What many teams do today

  • Trust that a clean-looking source repository means a clean build artefact
  • Open unfamiliar branches straight into VS Code or Claude Code without checking planted config
  • Keep long-lived npm and GitHub tokens with full write access sitting in the environment
  • Let CI auto-resolve and pull the latest transitive dependencies on every build
  • Audit only main for suspicious files, leaving other branches unchecked
  • Store cloud keys and secrets in shell configs and plain environment variables

Proactive posture

Where Cloudswitched takes you

  • Treat repository-supplied configuration as executable content that must be reviewed before it runs
  • Verify tarball and lockfile integrity in CI, not just the source on the branch
  • Use short-lived, least-privilege tokens and rotate publish credentials on a schedule
  • Pin dependency versions and gate transitive updates through review
  • Scan every branch for unexpected .claude/settings.json and .vscode/tasks.json
  • Keep secrets in a managed store with MFA and hardware keys on npm and GitHub
35
Typical SME supply-chain readiness score (illustrative, out of 100)

The gauge above reflects a common pattern rather than a measured average: most small development teams are competent at writing and reviewing their own code, but noticeably weaker on the supply-chain controls that a tarball-level worm targets — artefact verification, token scoping, branch-wide config hygiene and secret management. That imbalance is exactly the seam ChainDrop is built to exploit, and much of it can be closed with process and configuration rather than expensive new tooling.

A practical first step this week

Before anything else, run two checks. First, take SafeDep’s published list and grep your lockfiles and build manifests — across all your repositories — for any of the compromised packages and versions. Second, search every branch, not just main, for unexpected .claude/settings.json and .vscode/tasks.json files, since those are the planted hooks that trigger infection the moment someone opens the branch. If either check finds something, rotate your npm tokens and GitHub credentials before you do anything else. Those two searches cost nothing but a little time and directly address the two mechanisms — poisoned tarballs and planted config — that ChainDrop depends on.

The story at a glance

Detail What we know
Threat ChainDrop, a self-replicating npm supply-chain worm
Lineage New variant of Shai-Hulud, first identified September 2025, named after the Dune sandworms
Discovered 4 August 2026, by security researchers examining npm
Packages infected 444, from multiple publishers
Reach Roughly 2 billion downloads a month combined
Notable victims Deep dependencies including keyv, flat-cache and cache-manager
Infection vector Tarballs (archive downloads), not source-repository commits
Trigger files .claude/settings.json and .vscode/tasks.json startup hooks
What it steals npm write tokens, cloud keys and secrets from shell configs, env vars and live memory
How it spreads Rebuilds tarballs via captured npm tokens; commits config to branches via GitHub API
Reference list SafeDep published the compromised packages and versions
UK takeaway Audit dependencies and all branches, rotate npm and GitHub credentials, treat repo config as executable

ChainDrop is the latest in a run of incidents that all point the same way — that the suppliers, tools and automated systems around your business are now part of its attack surface. It sharpens the supply-chain lesson from the cyber attack that cascaded through UK manufacturers’ supply chains, and it rhymes with the human-factor breach at the heart of the RingCentral vishing incident, where one compromised credential unlocked a vast dataset. It also sits alongside the governance questions raised by AI-agent liability for UK businesses — especially now that AI coding assistants are part of the trigger path — and the platform-consolidation risks explored in our look at the Microsoft Copilot app merger, while the always-on delivery underlined by the UK full-fibre usage surge only means a poisoned build reaches production faster.

Is your build pipeline a strength or a soft target?

Cloudswitched helps UK SMEs build and ship web applications on a foundation of verified dependencies, scoped tokens, branch-wide config hygiene and secrets that live in a managed store — not scattered through the environment. If you cannot answer the questions in this article, we will help you find out where you stand.

Talk to us about Web Development

Frequently asked questions

What is ChainDrop, in plain terms?
ChainDrop is a self-replicating worm that spreads through the npm package ecosystem. It is a new variant of the Shai-Hulud worm first identified in September 2025 and named after the sandworms in Frank Herbert’s Dune. On 4 August 2026 researchers found it had infected 444 npm packages from multiple publishers — packages downloaded around two billion times a month between them. Its defining trick is that it tampers with the tarball you download and install rather than the source code in the repository, so ordinary source review can miss it entirely. It also plants configuration files that trigger infection when a developer simply opens a branch in a modern editor.
Why can’t I just check the source code on GitHub?
Because ChainDrop does not put its payload in the source. When you install a package, npm downloads a pre-built tarball — a compressed archive of the published files — rather than building from the Git repository. ChainDrop injects itself into that tarball, so the repository on GitHub can look completely clean while the installed package is compromised. This is exactly why researchers call it the first campaign to exploit this gap in dependency scanning at scale: tools and reviewers that audit the source come away reassured while the artefact you actually run is poisoned. You have to verify the installed artefact, not just read the code.
How does simply opening a project infect my machine?
ChainDrop plants malicious startup hooks into repository configuration files — specifically .claude/settings.json and .vscode/tasks.json. Both VS Code and Claude Code can act on instructions in those files when a project or branch is opened, so the hook can execute without you running an explicit install or build command. That is why the advice is to treat repository-supplied configuration as executable content: opening a branch is no longer a passive act. If you pull or check out an unfamiliar branch, inspect those files before you let your editor act on them.
Which packages were affected?
Researchers counted 444 infected packages from multiple publishers, including widely-used deep infrastructure dependencies such as keyv, flat-cache and cache-manager — caching and key-value libraries that arrive transitively in a huge range of projects. Because the full list is long and version-specific, the open-source security firm SafeDep published the compromised packages and versions so teams can check against a definitive inventory. The most reliable way to know whether you are affected is to compare that list against your own lockfiles and build manifests rather than relying on which package names you happen to recognise.
What exactly does the worm steal?
Once triggered, ChainDrop scours the workspace for npm tokens that carry full write privileges, along with cloud keys and secrets held in shell configuration files, environment variables and even live process memory. It encrypts and exfiltrates whatever it finds. The npm token is the prize, because it lets the worm publish poisoned versions of packages and self-replicate. It also looks for GitHub credentials, which let it enumerate your repositories and branches through the GitHub API and commit its malicious configuration directly into them, seeding the next wave of infections.
How does it self-replicate without leaving a trace?
If ChainDrop captures an npm token, it downloads the tarballs of every package that token is allowed to publish to, rebuilds each one to include its own payload, and republishes them. Because the malicious change lives in the rebuilt tarball rather than in a commit to the source repository, there is no obvious evidence in the project’s Git history. Anyone who then installs the affected version pulls the poisoned build. The GitHub path works similarly: it commits trigger config into branches, so the infection restarts whenever another developer opens one of those branches. The loop is what makes it a worm rather than a one-off malicious package.
Why is a CI/CD pipeline a particular risk here?
npm is deeply integrated into modern CI/CD, and pipelines routinely pull dependencies automatically during a rebuild. That automation is convenient, but it also gives the worm a clean path into fresh production builds: if a poisoned version is resolved during an automated pull, it can be baked into whatever your pipeline ships next. Pipelines also tend to hold exactly the credentials ChainDrop wants — publish tokens and cloud keys — often as long-lived environment variables. Pinning versions, verifying artefact integrity and scoping pipeline tokens tightly are the controls that break this path.
What should we do first if we think we are exposed?
Start with two searches. Check your lockfiles and build manifests against SafeDep’s list of compromised packages and versions, across all your repositories. Then search every branch — not just main — for unexpected .claude/settings.json and .vscode/tasks.json files. If either turns something up, assume credentials may be compromised: rotate your npm tokens and GitHub credentials immediately, and review recent publishes and commits for anything you did not make. After the immediate rotation, move to prevention — scoped tokens, artefact verification and treating repository config as executable content.
Will rotating tokens be enough on its own?
Rotation is essential but not sufficient. Rotating npm and GitHub credentials cuts off an attacker who has already captured them, but it does nothing about a poisoned package still resolved in your builds or a planted config file still sitting on a branch. Treat rotation as one of three parallel actions: remove the compromised dependencies and rebuild against clean versions, purge any planted trigger files from every branch, and rotate the credentials that may have leaked. Doing only one leaves a door open — a clean token still pulls a poisoned package, and a planted file re-triggers the moment someone opens the branch.
Is this a one-off, or should we expect more attacks like it?
Researchers are explicit that this is the first campaign to exploit this specific gap in dependency-scanning tools at scale, and that they expect further campaigns of the same kind. The technique — tampering with distribution artefacts rather than source, and using editor and AI-assistant config as a trigger — is now proven and public. The sensible assumption for any UK team is that this is a new baseline threat rather than a single event. That is why the durable fix is not a one-time clean-up but a change of posture: verify artefacts, scope and rotate credentials, and treat repository-supplied configuration as code that runs.

Build on a supply chain you can actually trust

From verified dependencies and pinned versions to scoped tokens, branch hygiene and secrets kept in a managed store, Cloudswitched helps UK SMEs build and ship web applications the way this incident shows they should be built. Let’s pressure-test your pipeline before someone else does.

Talk to us about Web Development
Tags:Web DevelopmentIT SupportCyber EssentialsNetwork Admin
CloudSwitched

London-based managed IT services provider offering support, cloud solutions and cybersecurity for SMEs.

CloudSwitched Service

Web Development

Custom websites, web apps and e-commerce solutions built for results

Learn More

Technology Stack

Powered by industry-leading technologies including SolarWinds, Cloudflare, BitDefender, AWS, Microsoft Azure, and Cisco Meraki to deliver secure, scalable, and reliable IT solutions.

SolarWinds
Cloudflare
BitDefender
AWS
Hono
Opus
Office 365
Microsoft
Cisco Meraki
Microsoft Azure

Latest Articles

23
  • AI

AI Code Review: A UK Development Team's Guide to Using AI Without Introducing Technical Debt in 2026

23 Aug, 2026

AI code review has moved from novelty to default in UK development teams inside about eighteen months. Pull requests now arrive pre-annotated by a model,...

Read more
22
  • Google Ads & PPC

Google Ads Budget Waste: A UK Business Guide to Cutting Wasted PPC Spend in 2026

22 Aug, 2026

Google Ads wasted spend is the single most recoverable line item in most UK SME marketing budgets. It is not a strategy problem and it is rarely a creative...

Read more
21
  • Cyber Security

Cyber Essentials Certification: A UK Business Step-by-Step Guide to Passing First Time in 2026

21 Aug, 2026

Cyber Essentials certification has quietly become a commercial requirement rather than a security badge. It is mandatory for most central government contracts...

Read more

Enquiry Received!

Thank you for getting in touch. A member of our team will review your enquiry and get back to you within 24 hours.