In February 2026, researchers at Socket discovered a campaign called SANDWORM_MODE: 19 malicious npm packages specifically crafted to typosquat the names of popular AI developer tools — including Claude Code, Cursor, Windsurf, and VS Code Continue. The attack didn't just steal credentials. It injected a fake MCP (Model Context Protocol) server directly into developers' AI assistant configurations, turning their coding tools into surveillance proxies. A few weeks later, a separate phenomenon called slopsquatting emerged: AI assistants hallucinating package names that don't exist — and attackers registering those ghost packages before anyone notices.

These two trends represent a fundamental shift in how npm typosquatting works. The attack surface is no longer just "developers mistyping package names." It now includes the AI tools developers trust to write their code. This article explains both mechanisms, documents the real incidents, and gives you concrete defenses.

SANDWORM_MODE: When AI Tools Became the Target

The SANDWORM_MODE campaign was documented by the Socket Threat Research Team on February 20, 2026. Unlike earlier typosquatting campaigns that went after general-purpose npm packages, SANDWORM_MODE was precise: it targeted the CLI tools and npm packages that AI developers install daily.

The Packages Involved

The 19 malicious packages included names like:

  • claud-code@0.2.1 → targeting claude-code (Anthropic)
  • cloude-code@0.2.1 → targeting claude-code (Anthropic)
  • cloude@0.3.0 → targeting claude (Anthropic SDK)
  • suport-color@0.1.1 → targeting supports-color
  • veim@2.46.2 → targeting viem (Ethereum library)
  • 14 additional packages targeting Cursor, Windsurf/Codeium, OpenClaw, VS Code Continue extensions

The MCP Server Injection — A Novel Attack Vector

What made SANDWORM_MODE technically distinctive was its payload mechanism. Standard typosquatting packages steal credentials via postinstall hooks. SANDWORM_MODE did that and more: it modified the configuration files of AI coding assistants to register a malicious Model Context Protocol (MCP) server.

MCP is the protocol that allows AI assistants like Claude Code to access local tools, read files, and execute commands. By injecting a rogue MCP server entry into the developer's configuration, the attackers positioned themselves to intercept every prompt sent to the AI assistant, read any file the assistant accessed, and silently exfiltrate context — including code, credentials, and API keys — through a persistent background channel.

The data exfiltrated by the standard credential-theft component included:

  • API keys and access tokens (npm, GitHub, AWS, OpenAI)
  • SSH private keys from ~/.ssh/
  • Environment variables (.env files)
  • Cryptocurrency wallet seed phrases
19
malicious packages in the SANDWORM_MODE campaign
Source: Socket.dev, Feb 2026
3+
AI coding tools directly targeted (Claude Code, Cursor, Windsurf)
Source: Socket.dev, Feb 2026
72
malicious VS Code extensions in the GlassWorm campaign (Mar 2026)
Source: The Hacker News, Mar 2026
454,648
malicious npm packages published in 2025
Source: Xygeni, 2026

Slopsquatting: When Your AI Assistant Invents a Package

Slopsquatting is a term coined by security researcher Seth Larson to describe a new attack vector that emerges directly from how large language models work. When an AI assistant suggests code, it sometimes includes package imports for packages that don't actually exist — hallucinated names that sound plausible but have never been published on npm.

The Numbers Behind AI Package Hallucinations

A research study (cited by Snyk and BleepingComputer) analyzed 576,000 code samples generated by AI models. The findings were striking:

  • ~20% of cases included suggestions for packages that do not exist on npm
  • 43% of hallucinated package names were reproduced identically across 10 separate queries — meaning the same ghost package appears consistently
  • 58% of hallucinations occurred more than once — they are not random errors but repeatable artifacts of the model's training data

That consistency is the attack opportunity. If an AI model reliably hallucinates the package name react-codeshift, an attacker can register that name on npm, publish a malicious version, and then wait. Every developer who asks that same AI assistant for code involving this functionality will receive a suggestion to install an attacker-controlled package.

The react-codeshift Incident: Slopsquatting in the Wild

Aikido Security documented a real-world case in January 2026. The package react-codeshift — a name hallucinated by a popular AI coding assistant — was registered on npm and published with a credential-stealing payload. Because the name was suggested repeatedly and consistently by the AI model, the package was silently added as a dependency in 237 GitHub repositories by developers who trusted their AI assistant's recommendation and never manually verified whether the package was legitimate.

None of these developers mistyped anything. They installed exactly what their AI tool told them to install.

⚠️

What makes slopsquatting different from typosquatting

Classic typosquatting requires a human to make a keyboard error. Slopsquatting requires no error at all — the developer installs exactly what their trusted AI assistant recommended. This defeats the most common defense (double-checking what you install) because the developer has no reason to doubt a tool they trust daily.

The GlassWorm Campaign: AI Tools Targeted Beyond npm

The threat isn't limited to npm packages. In March 2026, The Hacker News reported on GlassWorm, a supply chain attack that compromised 72 extensions on Open VSX (the open-source Visual Studio Code extension registry used by VS Code forks and Linux users). The targeted extensions were specifically those used by AI coding assistants — Google Antigravity, Claude Code's VS Code integration, and similar tools.

What made GlassWorm particularly difficult to detect: the malicious commits added to these extensions were generated by an LLM to mimic legitimate maintenance activity. Code review tools trained on patterns of "good commits" rated the changes as low-risk. The campaign remained undetected for several weeks in some extensions.

Why AI Developer Tools Are the New Attack Surface

The concentration of attacks targeting AI tools in 2026 is not coincidental. There are structural reasons why developers who use AI assistants are more exposed:

1. Higher Trust, Lower Verification

When a developer manually writes an npm install command, they have at least considered the package name. When an AI assistant generates the command, the developer's mental model shifts: the AI checked it, surely. This is incorrect — AI models do not verify package existence on registries before suggesting them.

2. Automated Dependency Installation in AI Workflows

AI coding agents (like Claude Code in agentic mode) can run terminal commands autonomously. When configured to execute suggested installs without confirmation, a slopsquatting attack requires zero human interaction — the agent installs the malicious package by itself.

3. Rich Local Access Context

AI coding tools have access to file systems, environment variables, and API keys — the exact data attackers want. A compromised npm package installed by an AI agent runs in an environment where credentials are abundant and easily accessible.

4. MCP as an Attack Multiplier

The Model Context Protocol is powerful precisely because it gives AI assistants deep integration with local systems. The same depth that makes AI tools productive makes MCP server injection catastrophic: a rogue MCP server doesn't just exfiltrate one set of credentials; it maintains persistent access to everything the AI assistant touches.

How to Defend Against npm Typosquatting and Slopsquatting

1. Verify Every Package Before Installing

Whether the install command comes from your fingers or from an AI assistant, verify the package before running it:

# Check package details before installing
npm info <package-name>

# Look for: publication date, weekly downloads, maintainer history
# Red flags: very new package, zero downloads, maintainer with no history

2. Use npm Audit and a Lockfile — Always

A package-lock.json or yarn.lock pins exact versions and their checksums. Running npm ci instead of npm install in CI/CD environments ensures you install exactly what's in the lockfile — not whatever the latest version happens to be at install time.

# In CI/CD — always use ci, not install
npm ci

# Verify lockfile integrity
npm audit --audit-level=moderate

3. Configure AI Assistants to Request Confirmation Before Installing

If you use an AI coding agent in agentic mode, configure it to always ask for confirmation before running npm install commands. In Claude Code, you can achieve this via your .claude/settings.json:

{
  "permissions": {
    "allow": [],
    "deny": ["Bash(npm install*)"]
  }
}

This forces the agent to pause and request manual approval before any npm install, preventing autonomous slopsquatting installation.

4. Audit Your MCP Server Configuration Regularly

The SANDWORM_MODE campaign injected fake MCP servers by modifying config files. Review your AI assistant's MCP configuration periodically:

# Check for unexpected MCP server entries in Claude Code config
cat ~/.claude.json | grep -A5 "mcpServers"

# Verify each server — you should recognize every entry

5. Monitor Dependencies Continuously, Not Just at Install Time

A package can be legitimate when first installed and become malicious after a subsequent version update. Continuous monitoring — scanning your lockfiles daily against known CVE databases — catches compromised packages between install cycles.

Monitor your dependencies automatically

CVE OptiBot scans your package-lock.json daily against OSV.dev and NVD, alerting you the moment a dependency is flagged — whether the vulnerability was present at install or appeared later in a post-install update.

Start free monitoring

Frequently Asked Questions

What is npm typosquatting?

npm typosquatting is an attack where a malicious package is registered with a name visually similar to a legitimate one (e.g., lod4sh instead of lodash). Developers who mistype the package name — or who follow an AI suggestion for a hallucinated name — install the malicious version instead of the legitimate one.

What is slopsquatting?

Slopsquatting occurs when an AI assistant hallucinates a package name that does not exist, and an attacker preemptively registers that name on npm with a malicious payload. When developers follow the AI's suggestion and run npm install <hallucinated-name>, they install the attacker's package. The term was coined by researcher Seth Larson.

What was the SANDWORM_MODE campaign?

SANDWORM_MODE was a February 2026 npm typosquatting campaign (documented by Socket.dev) that published 19 malicious packages targeting AI developer tools — Claude Code, Cursor, Windsurf, and others. Beyond credential theft, it injected rogue MCP (Model Context Protocol) servers into AI assistant configurations to maintain persistent access to developers' environments.

How often do AI models hallucinate npm package names?

Research analyzing 576,000 AI-generated code samples found that approximately 20% of samples included suggestions for packages that don't exist on npm. Of those hallucinations, 43% were reproduced identically across multiple queries — meaning they are consistent, predictable patterns rather than random errors (source: academic study via Snyk/BleepingComputer).

How do I check if an npm package is safe?

Before installing any package, run npm info <package-name> to check its publication history, download counts, and maintainer profile. Look for packages with recent first-publication dates, no download history, or maintainers with no other published packages. Tools like Socket.dev, Snyk, and CVE OptiBot provide automated detection of known malicious packages.

Does npm audit protect against typosquatting?

No. npm audit checks your dependencies against the npm advisory database for known vulnerabilities in legitimate packages. It does not detect newly published typosquatted packages that haven't been reported yet, slopsquatted ghost packages, or malicious payloads injected via postinstall hooks that aren't classified as CVEs. Continuous monitoring via a dedicated CVE scanner provides broader coverage.

Related articles

npm Supply Chain Attacks in 2026: How to Protect Your Projects → Top 10 npm Vulnerabilities in 2026 → npm Vulnerability Scanner — CVE OptiBot → Continuous CVE Monitoring for Node.js Projects →

En février 2026, les chercheurs de Socket ont découvert la campagne SANDWORM_MODE : 19 packages npm malveillants spécifiquement conçus pour faire du typosquatting sur les noms des outils de développement IA les plus populaires — dont Claude Code, Cursor, Windsurf et VS Code Continue. L'attaque ne se limitait pas au vol de credentials. Elle injectait un faux serveur MCP (Model Context Protocol) directement dans les configurations des assistants IA, transformant les outils de coding en proxies de surveillance. Quelques semaines plus tard, un phénomène baptisé slopsquatting a émergé : des assistants IA qui hallucinent des noms de packages inexistants — et des attaquants qui enregistrent ces noms fantômes avant que quiconque ne s'en aperçoive.

Ces deux tendances représentent un changement fondamental dans le fonctionnement du typosquatting npm. La surface d'attaque n'est plus seulement "des développeurs qui tapent mal les noms de packages". Elle inclut désormais les outils IA que les développeurs utilisent pour écrire leur code. Cet article explique les deux mécanismes, documente les vrais incidents, et vous donne des défenses concrètes.

SANDWORM_MODE : Quand les Outils IA Sont Devenus la Cible

La campagne SANDWORM_MODE a été documentée par la Socket Threat Research Team le 20 février 2026. Contrairement aux campagnes de typosquatting antérieures qui visaient des packages npm généralistes, SANDWORM_MODE était précise : elle ciblait les outils CLI et packages npm installés quotidiennement par les développeurs IA.

Les Packages Impliqués

Les 19 packages malveillants incluaient des noms tels que :

  • claud-code@0.2.1 → ciblant claude-code (Anthropic)
  • cloude-code@0.2.1 → ciblant claude-code (Anthropic)
  • cloude@0.3.0 → ciblant claude (SDK Anthropic)
  • suport-color@0.1.1 → ciblant supports-color
  • veim@2.46.2 → ciblant viem (bibliothèque Ethereum)
  • 14 packages supplémentaires ciblant Cursor, Windsurf/Codeium, OpenClaw, les extensions VS Code Continue

L'Injection de Serveur MCP — Un Vecteur d'Attaque Inédit

Ce qui rendait SANDWORM_MODE techniquement distinctif, c'était son mécanisme de payload. Les packages typosquattés classiques volent des credentials via les hooks postinstall. SANDWORM_MODE faisait cela et davantage : il modifiait les fichiers de configuration des assistants IA de coding pour enregistrer un serveur MCP (Model Context Protocol) malveillant.

Le MCP est le protocole qui permet aux assistants IA comme Claude Code d'accéder aux outils locaux, de lire des fichiers et d'exécuter des commandes. En injectant une entrée de serveur MCP malveillant dans la configuration du développeur, les attaquants se positionnaient pour intercepter chaque prompt envoyé à l'assistant IA, lire tout fichier auquel l'assistant accédait, et exfiltrer silencieusement le contexte — code, credentials, clés API — via un canal de fond persistant.

Les données exfiltrées par le composant de vol de credentials incluaient :

  • Clés API et tokens d'accès (npm, GitHub, AWS, OpenAI)
  • Clés SSH privées depuis ~/.ssh/
  • Variables d'environnement (fichiers .env)
  • Phrases de récupération de portefeuilles crypto
19
packages malveillants dans la campagne SANDWORM_MODE
Source : Socket.dev, fév. 2026
3+
outils IA directement ciblés (Claude Code, Cursor, Windsurf)
Source : Socket.dev, fév. 2026
72
extensions VS Code malveillantes dans la campagne GlassWorm (mars 2026)
Source : The Hacker News, mars 2026
454 648
packages npm malveillants publiés en 2025
Source : Xygeni, 2026

Slopsquatting : Quand Votre Assistant IA Invente un Package

Le slopsquatting est un terme inventé par le chercheur en sécurité Seth Larson pour décrire un nouveau vecteur d'attaque qui émerge directement du fonctionnement des grands modèles de langage. Quand un assistant IA suggère du code, il inclut parfois des imports pour des packages qui n'existent pas réellement — des noms hallucinés qui semblent plausibles mais n'ont jamais été publiés sur npm.

Les Chiffres Derrière les Hallucinations de Packages IA

Une étude de recherche (citée par Snyk et BleepingComputer) a analysé 576 000 échantillons de code générés par des modèles IA. Les résultats sont frappants :

  • ~20% des cas incluaient des suggestions de packages qui n'existent pas sur npm
  • 43% des noms de packages hallucinés étaient reproduits à l'identique sur 10 requêtes distinctes — le même package fantôme apparaît de manière consistante
  • 58% des hallucinations se produisaient plus d'une fois — ce sont des artefacts répétables du training du modèle, pas des erreurs aléatoires

Cette constance est l'opportunité d'attaque. Si un modèle IA hallucine systématiquement le nom de package react-codeshift, un attaquant peut enregistrer ce nom sur npm, publier une version malveillante, et attendre. Chaque développeur qui pose la même question à cet assistant IA recevra une suggestion d'installer un package contrôlé par l'attaquant.

L'Incident react-codeshift : Le Slopsquatting en Vrai

Aikido Security a documenté un cas réel en janvier 2026. Le package react-codeshift — un nom halluciné par un assistant IA de coding populaire — a été enregistré sur npm et publié avec un payload de vol de credentials. Parce que ce nom était suggéré de manière répétée et consistante par le modèle, le package a été silencieusement ajouté comme dépendance dans 237 dépôts GitHub par des développeurs qui faisaient confiance à la recommandation de leur assistant IA sans vérifier manuellement si le package était légitime.

Aucun de ces développeurs n'avait fait une erreur de frappe. Ils ont installé exactement ce que leur outil IA leur avait dit d'installer.

⚠️

Ce qui distingue le slopsquatting du typosquatting classique

Le typosquatting classique nécessite qu'un humain fasse une erreur de frappe. Le slopsquatting ne nécessite aucune erreur — le développeur installe exactement ce que son assistant IA de confiance a recommandé. Cela neutralise la défense la plus courante (vérifier ce qu'on installe) parce que le développeur n'a aucune raison de douter d'un outil qu'il utilise quotidiennement.

La Campagne GlassWorm : Les Outils IA Ciblés Au-delà de npm

La menace ne se limite pas aux packages npm. En mars 2026, The Hacker News a rapporté GlassWorm, une attaque supply chain qui a compromis 72 extensions sur Open VSX (le registre d'extensions VS Code open-source utilisé par les forks de VS Code et les utilisateurs Linux). Les extensions ciblées étaient spécifiquement celles utilisées par les assistants IA de coding — Google Antigravity, l'intégration VS Code de Claude Code, et des outils similaires.

Ce qui rendait GlassWorm particulièrement difficile à détecter : les commits malveillants ajoutés à ces extensions étaient générés par un LLM pour imiter une activité de maintenance légitime. Les outils de code review entraînés sur des patterns de "bons commits" évaluaient les changements comme à faible risque. La campagne est restée non détectée plusieurs semaines dans certaines extensions.

Pourquoi les Outils de Développement IA Sont la Nouvelle Surface d'Attaque

La concentration d'attaques ciblant les outils IA en 2026 n'est pas fortuite. Il y a des raisons structurelles pour lesquelles les développeurs qui utilisent des assistants IA sont plus exposés :

1. Plus de Confiance, Moins de Vérification

Quand un développeur tape manuellement une commande npm install, il a au moins réfléchi au nom du package. Quand un assistant IA génère la commande, le modèle mental change : "l'IA l'a vérifié, sûrement". C'est incorrect — les modèles IA ne vérifient pas l'existence des packages sur les registres avant de les suggérer.

2. Installation Automatisée de Dépendances dans les Workflows IA

Les agents de coding IA (comme Claude Code en mode agentique) peuvent exécuter des commandes terminal de manière autonome. Configurés pour exécuter les installs suggérés sans confirmation, une attaque de slopsquatting ne nécessite aucune interaction humaine — l'agent installe lui-même le package malveillant.

3. Accès Contextuel Local Riche

Les outils de coding IA ont accès aux systèmes de fichiers, variables d'environnement et clés API — exactement ce que les attaquants veulent. Un package npm compromis installé par un agent IA s'exécute dans un environnement où les credentials sont abondants et facilement accessibles.

4. MCP comme Multiplicateur d'Attaque

Le Model Context Protocol est puissant précisément parce qu'il donne aux assistants IA une intégration profonde avec les systèmes locaux. Cette même profondeur qui rend les outils IA productifs rend l'injection de serveur MCP catastrophique : un serveur MCP malveillant ne se contente pas d'exfiltrer un ensemble de credentials ; il maintient un accès persistant à tout ce que l'assistant IA touche.

Comment Se Défendre Contre le Typosquatting npm et le Slopsquatting

1. Vérifier Chaque Package Avant l'Installation

Que la commande d'installation vienne de vos doigts ou d'un assistant IA, vérifiez le package avant de l'exécuter :

# Vérifier les infos du package avant installation
npm info <nom-du-package>

# Chercher : date de première publication, téléchargements hebdomadaires, historique du mainteneur
# Signaux d'alerte : package très récent, zéro téléchargements, mainteneur sans historique

2. Utiliser npm audit et un Lockfile — Toujours

Un package-lock.json ou yarn.lock épingle les versions exactes et leurs checksums. Utiliser npm ci plutôt que npm install en CI/CD garantit l'installation exacte de ce qui est dans le lockfile — pas de la dernière version disponible au moment de l'installation.

# En CI/CD — toujours utiliser ci, pas install
npm ci

# Vérifier l'intégrité du lockfile
npm audit --audit-level=moderate

3. Configurer les Assistants IA pour Demander Confirmation Avant l'Installation

Si vous utilisez un agent IA en mode agentique, configurez-le pour toujours demander confirmation avant d'exécuter des commandes npm install. Dans Claude Code, cela se configure via .claude/settings.json :

{
  "permissions": {
    "allow": [],
    "deny": ["Bash(npm install*)"]
  }
}

Cela force l'agent à s'arrêter et demander une approbation manuelle avant toute installation npm, empêchant les installations de slopsquatting autonomes.

4. Auditer Régulièrement la Configuration de vos Serveurs MCP

La campagne SANDWORM_MODE injectait de faux serveurs MCP en modifiant les fichiers de config. Vérifiez périodiquement la configuration MCP de votre assistant IA :

# Vérifier les entrées MCP inattendues dans la config Claude Code
cat ~/.claude.json | grep -A5 "mcpServers"

# Vérifier chaque serveur — vous devez reconnaître chaque entrée

5. Surveiller les Dépendances en Continu, Pas Seulement à l'Installation

Un package peut être légitime lors de la première installation et devenir malveillant après une mise à jour de version ultérieure. Une surveillance continue — scanner vos lockfiles quotidiennement contre les bases de données CVE connues — détecte les packages compromis entre les cycles d'installation.

Surveillez vos dépendances automatiquement

CVE OptiBot scanne votre package-lock.json quotidiennement contre OSV.dev et NVD, vous alertant dès qu'une dépendance est signalée — que la vulnérabilité était présente à l'installation ou qu'elle soit apparue dans une mise à jour post-install.

Démarrer le monitoring gratuit

Questions Fréquentes

Qu'est-ce que le typosquatting npm ?

Le typosquatting npm est une attaque où un package malveillant est enregistré avec un nom visuellement similaire à un package légitime (ex : lod4sh au lieu de lodash). Les développeurs qui font une faute de frappe — ou qui suivent une suggestion IA pour un nom halluciné — installent la version malveillante plutôt que la légitime.

Qu'est-ce que le slopsquatting ?

Le slopsquatting survient quand un assistant IA hallucine un nom de package qui n'existe pas, et qu'un attaquant enregistre ce nom sur npm avec un payload malveillant. Quand les développeurs suivent la suggestion IA et exécutent npm install <nom-halluciné>, ils installent le package de l'attaquant. Le terme a été créé par le chercheur Seth Larson.

Qu'était la campagne SANDWORM_MODE ?

SANDWORM_MODE était une campagne de typosquatting npm de février 2026 (documentée par Socket.dev) qui a publié 19 packages malveillants ciblant des outils de développement IA — Claude Code, Cursor, Windsurf, et d'autres. Au-delà du vol de credentials, elle injectait de faux serveurs MCP (Model Context Protocol) dans les configurations des assistants IA pour maintenir un accès persistant aux environnements des développeurs.

À quelle fréquence les modèles IA hallucinent-ils des noms de packages npm ?

Une étude analysant 576 000 échantillons de code générés par IA a trouvé qu'environ 20% des échantillons incluaient des suggestions de packages qui n'existent pas sur npm. Parmi ces hallucinations, 43% étaient reproduites à l'identique sur plusieurs requêtes — ce sont des patterns consistants et prédictibles, pas des erreurs aléatoires (source : étude académique via Snyk/BleepingComputer).

Comment vérifier qu'un package npm est sûr ?

Avant d'installer un package, exécutez npm info <nom-du-package> pour vérifier son historique de publication, ses téléchargements et le profil du mainteneur. Cherchez les packages avec une date de première publication récente, aucun historique de téléchargements, ou des mainteneurs sans autres packages publiés. Des outils comme Socket.dev, Snyk et CVE OptiBot fournissent une détection automatisée des packages malveillants connus.

npm audit protège-t-il contre le typosquatting ?

Non. npm audit vérifie vos dépendances contre la base de données d'advisory npm pour les vulnérabilités connues dans les packages légitimes. Il ne détecte pas les nouveaux packages typosquattés qui n'ont pas encore été signalés, les packages slopsquattés fantômes, ni les payloads malveillants injectés via des hooks postinstall non classifiés comme CVE. Une surveillance continue via un scanner CVE dédié offre une couverture plus large.

Articles liés

Attaques Supply Chain npm en 2026 : Comment Protéger Vos Projets → Top 10 Vulnérabilités npm en 2026 → Scanner de Vulnérabilités npm — CVE OptiBot → Monitoring CVE Continu pour Projets Node.js →