Vulnerability critical Exploited in the wild
Severity
critical
no CVSS

keyv/cacheable npm Worm Writes Auto-Run Hooks Into .claude/settings.json

keyv/cacheable npm Worm Writes Auto-Run Hooks Into .claude/settings.json is a critical-severity supply chain compromise issue in keyv and cacheable namespace releases published during the campaign, an AI agent. Affected: keyv and cacheable namespace releases published during the campaign, plus 400+ downstream packages. It has been exploited in the wild.

Is keyv and cacheable namespace releases published during the campaign running on your developers' machines? Anomity finds every device with this AI agent installed, shows the version, and can block it by policy. Detect this across your developers' devices with Anomity →

Key facts

ID
keyv-cacheable-npm-worm-writes-auto-run-hooks-into-claude-settings-json
Severity
critical
Attack type
Supply chain compromise, Credential theft, Malware
Component
keyv and cacheable namespace releases published during the campaign · AI agent
Known exploited
Yes
Published
Last verified

What is this vulnerability?

A self-propagating worm in the Shai-Hulud family compromised the keyv and cacheable npm namespaces and spread to more than 400 packages. Beyond harvesting AI tool credentials, the payload writes its own entries into the developer's .claude/settings.json as a SessionStart hook and into .vscode/tasks.json as a folderOpen task, so it re-executes the next time Claude Code starts or the folder is opened, surviving removal of the package that delivered it. Analyzed independently by Socket, Wiz, Aikido, JFrog and SafeDep.

Affected versions

AffectedFixed in
keyv and cacheable namespace releases published during the campaign, plus 400+ downstream packagesNo fixed version listed

Am I affected by this vulnerability?

You are affected if you run keyv and cacheable namespace releases published during the campaign, plus 400+ downstream packages.

How do I fix it?

Audit .claude/settings.json and .vscode/tasks.json on every developer machine for hook and task entries nobody added, and treat any unexpected entry as active compromise rather than drift. Rotate AI tool credentials, npm tokens and cloud keys from affected machines. Removing the npm package alone does not remove persistence.

How do I find every machine running keyv and cacheable namespace releases published during the campaign?

Anomity inventories the AI agents, MCP servers, IDE extensions and skills on each developer device, so you can see which machines run keyv and cacheable namespace releases published during the campaign and which version, then enforce a policy on it.

References