Keyv-Linked Worm Poisons Hundreds of npm Packages
# Keyv-Linked Worm Poisons Hundreds of npm Packages
The page comes at 3am because a senior dev noticed their VS Code instance was maintaining an active outbound connection to an IP in Eastern Europe that didn't belong to any known telemetry endpoint. Then they checked their Claude Code config and found a hook they didn't write. That is the nightmare scenario. It isn't a database leak or a ransomware note. It is the realization that your primary tool for writing code has been turned into a remote access Trojan.
The incident involves a credential-stealing npm worm that poisoned hundreds of packages. The goal wasn't to crash systems or encrypt files. It was to harvest developer credentials and plant persistent hooks directly into VS Code and Claude Code. By the time the registry removes a malicious package, the damage is already local. If you ran `npm install` on a compromised dependency, you didn't just pull in bad code. You potentially handed over your IDE.
The attackers likely got in through traditional credential harvesting, likely phishing or password reuse, to hijack maintainer accounts. Once they had the keys to a few popular packages, they used the "worm" mechanism to poison further dependencies. It is a force multiplier. They don't have to hack every target manually; they just wait for the targets to update their libraries.
The official line from registry maintainers usually follows a predictable script: the malicious versions have been removed and the ecosystem is safe. That is a half-truth. Removing a package from the registry does nothing for the developer who already installed it. The hooks planted in VS Code and Claude Code exist in local configuration files, not in the `node_modules` folder. You can delete the library and the backdoor stays.
The cost here isn't measured in a single ransom payment or a regulatory fine. It is measured in the total loss of trust in the build pipeline. When your IDE is compromised, every commit you make is suspect. Every secret you paste into a terminal is gone. If 100 developers at a high-value target were hit, that company now has 100 potential entry points for lateral movement.
The response to this has been sluggish and focused on the wrong end of the pipe. The industry treats supply chain attacks as registry problems. They focus on "cleaning" the repository. But this is an endpoint problem. We are seeing a systemic failure in how we trust our tooling. This isn't an isolated event; it is part of a broader trend. Look at the 77 Open VSX extensions recently found harvesting developer info. The target has shifted from the server to the workstation.
Some will argue that static analysis and software composition analysis (SCA) tools should have caught this. They didn't. SCA tools look for known CVEs or obvious malicious patterns in the code being shipped. They don't monitor the behavior of the IDE hooks that execute during a local install process. The attack happens in the blind spot between "writing code" and "building software."
This creates a massive second-order effect. Any organization whose developers used these poisoned packages is now downstream of a breach they might not even know happened. If a dev at a bank or a defense contractor had their VS Code hooked, the attackers aren't just stealing a few API keys. They are watching the code be written in real-time. They can inject vulnerabilities into the source before it ever hits a security scanner. The build pipeline becomes a delivery vehicle for the attacker.
It rhymes with SolarWinds, but the parallel breaks here. SolarWinds was a surgical strike on a central build server. This is a shotgun blast across thousands of local workstations. It is harder to coordinate, but infinitely harder to remediate because there is no central "patch" for 5,000 different developer laptops.
To put the scale in perspective, we've seen reports of over 23 million user records leaked from Paidwork and just under 6 million accounts impacted at ADT recently. Those are loud breaches. They make headlines because the numbers are big. But the npm worm is more dangerous because it is quiet. A database leak is a snapshot of the past. An IDE hook is a window into the future.
The failure here isn't just the lack of MFA on some maintainer accounts. The failure is the implicit trust we place in `npm install`. We treat the registry like a trusted utility, but it functions more like an open bazaar where anyone can sell a poisoned apple if they have the right badge.
If you are managing a SOC, stop looking at your firewall logs for a moment and look at your dev environment configurations. If you see unauthorized hooks in Claude Code or unexpected extensions in VS Code, you aren't dealing with a "dependency issue." You are dealing with an active intrusion.
The real question is how many companies are currently shipping code written by developers whose IDEs belong to someone else. Most probably won't find out until the next stage of the attack begins.
Check your config files. Then do it again.
◼