Claude Code piégé sur Cursor : 15 min pour vérifier votre poste
Une version trafiquée de l'extension a circulé 11 heures le 29 octobre. Désinstaller ne suffit pas.
Le 29 octobre, des builds modifiés de l'extension officielle Claude Code ont été servis par le marketplace d'extensions de Cursor. Ils installaient une porte SSH persistante sur les postes de dev. Si vous codez sous Cursor, sur Mac ou Windows, vérifiez votre machine aujourd'hui. Ça prend un quart d'heure, et cinq secondes si vous n'êtes pas touché.
Ce tuto reprend le diagnostic, le nettoyage et la suite à donner. Il s'appuie sur l'analyse de StepSecurity et sur l'avis de sécurité de Cursor. Je n'ai pas désossé le malware moi-même : tout ce qui suit vient de ces deux sources, croisées avec The Hacker News.
Ce qui s'est passé le 29 octobre
Deux versions de l'extension anthropic.claude-code, la 2.1.312 et la 2.1.313, ont été publiées dans le marketplace de Cursor sous l'identité de l'extension légitime. Seules les builds macOS (darwin-arm64) et Windows (win32-x64) sont concernées. Fenêtre d'exposition : de 2 h 27 à 13 h 35, heure de la côte Ouest américaine, le 29 octobre (09 h 27 à 20 h 35 UTC). Cursor parle d'au plus 5 000 utilisateurs.
Comment les attaquants ont publié sous l'identifiant d'Anthropic ? Personne ne le sait encore. The Hacker News le dit tel quel : c'est « unclear ». Anthropic affirme que ses canaux officiels n'ont pas été touchés. Selon StepSecurity, la 2.1.313 n'a jamais été publiée sur Open VSX ni sur le marketplace de Microsoft. Les médias divergent sur Open VSX : certains parlent d'une présence, StepSecurity vérifie que la 2.1.312 y est propre. Retenez la règle prudente : seule compte la source d'où votre poste a téléchargé l'extension.
Le code est simple. Un chargeur de 7 386 octets est collé devant le vrai extension.js, qui reste intact derrière. Il s'exécute dès l'activation de l'extension, sans que vous ouvriez une conversation avec Claude">Claude. Il fait six choses :
- relève le nom de machine, l'utilisateur, l'e-mail git et les noms (pas les valeurs) de 40 variables d'environnement du type KEY, TOKEN ou SECRET ;
- ajoute une clé ed25519 commentée
svc-telemetrydans~/.ssh/authorized_keys; - active le serveur SSH local ;
- ouvre un tunnel inverse vers
134.209.82.225, relancé toutes les 60 secondes ; - s'installe en persistance ;
- envoie un signal de vie, avec votre IP publique, sur le port 8099 du serveur pirate.
Aucune valeur de secret n'est lue et il n'y a pas de seconde charge. Le vrai danger est l'accès interactif que la clé ouvre : quelqu'un qui se connecte chez vous comme vous.
Comment vérifier si votre poste est touché
Faites cette vérification avant toute désinstallation. Si vous supprimez l'extension d'abord, vous perdez le dossier qui vous dit quelle version vous aviez.
Étape 1 : la clé pirate
C'est le test décisif, celui que recommande Cursor. Sur macOS :
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"Sous Windows, dans PowerShell :
$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }Résultat « No key found » : vous n'êtes pas compromis. Posséder la version piégée ne prouve rien à lui seul, car la clé n'est écrite que si le chargeur a réussi. Sur un Mac, l'activation du SSH passe par sudo sans mot de passe. Chez la plupart des gens, cette étape échoue.
Étape 2 : les versions installées
Regardez dans le dossier d'extensions de Cursor (~/.cursor/extensions par défaut) :
ls ~/.cursor/extensions | grep anthropic.claude-codeLes dossiers anthropic.claude-code-2.1.312-* et -2.1.313-* sont les suspects. Pour trancher, cherchez les marqueurs dans le fichier :
grep -l -E "134.209.82.225|svc-telemetry" ~/.cursor/extensions/anthropic.claude-code-*/extension.jsUn fichier listé = version trafiquée. Notez-le avant de continuer, ça servira si vous devez prévenir votre DSI ou votre assureur.
Étape 3 : les traces de persistance
Ce sont les fichiers cités par StepSecurity. Leur présence, même sans la clé, justifie un nettoyage :
- macOS :
~/Library/LaunchAgents/com.apple.sysmond.plist,~/.config/.smt,~/.config/.smtk; - Windows : tâche planifiée
SysMon, ousysmon.cmddans le dossier Démarrage, plus%USERPROFILE%\.config\smt.cmd; - les deux : un fichier caché
.stk_suivi de 10 caractères hexa dans le dossier temporaire.
Côté processus, cherchez une commande ssh -N -R ou autossh -M 0 en cours d'exécution.
Nettoyer : la clé trouvée, que faire dans l'ordre
Cursor insiste sur un point : désinstaller l'extension ne suffit pas. Les scripts déposés continuent de tourner tout seuls.
- Coupez le réseau de la machine ou isolez-la si elle sert de poste de prod.
- Téléchargez les scripts de remédiation depuis la page de sécurité de Cursor, puis lancez
bash remediate-macos.sh(sous votre utilisateur, pas en root) ou, en PowerShell administrateur,powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1. Ils retirent l'extension, la persistance, les tunnels et la clé, et sortent en erreur s'il reste quelque chose. - Relancez le test de l'étape 1.
- Si le script échoue ou si la machine avait des accès sensibles, reconstruisez-la. Cursor le suggère lui-même.
Une précision utile : le serveur pirate a été mis hors ligne le 30 octobre avec l'aide de l'hébergeur. Le tunnel et l'envoi de données ne fonctionnent donc plus. C'est rassurant pour la suite, pas pour le passé : rien ne dit ce qui a été fait pendant la fenêtre ouverte.
Changer les secrets sans se disperser
Le chargeur a lu les noms de vos variables d'environnement (clés cloud, tokens, mots de passe). Les valeurs n'ont pas été exfiltrées. Mais si quelqu'un est entré par SSH, tout ce que votre session voyait était lisible.
Faites la rotation depuis une machine saine, pas depuis le poste suspect. Ordre conseillé :
- clés SSH et tokens GitHub/GitLab ;
- clés d'API IA (OpenAI, Anthropic, Mistral) : une fuite se paie en tokens, voyez notre comparatif des passerelles LLM après l'affaire LiteLLM ;
- clés cloud (AWS, GCP, OVH) ;
- sessions de navigateur et gestionnaire de mots de passe si vous les ouvriez sur cette machine.
Si vous avez un compte de service avec des droits larges, c'est le premier à tourner. Les identités dédiées par agent limitent exactement ce genre de dégât.
Marketplace d'extensions : ce que ça change pour une PME
Cet incident n'est pas une faille de Claude Code. C'est une faille de la chaîne de distribution. Votre éditeur de code télécharge des paquets avec les droits de votre session, et il le fait en silence. Nous avions déjà documenté une faille où ouvrir un simple dépôt suffisait à piéger Claude Code, Codex et Cursor. Le motif se répète : l'agent a des droits larges, l'environnement autour est poreux.
Trois garde-fous qui ne coûtent rien :
- Désactiver les mises à jour automatiques des extensions sur les postes qui touchent à la prod, et mettre à jour à la main après quelques jours. Ici, la fenêtre d'attaque n'a duré que 11 heures.
- Verrouiller la source. Une extension qui a le même identifiant sur deux marketplaces n'a pas forcément la même chaîne de confiance. Vérifiez d'où vient chaque version installée.
- Séparer le poste de dev et le poste d'admin. Une clé de prod dans
~/.awssur la machine qui exécute des extensions, c'est un pari.
Le même réflexe vaut pour vos agents : voyez notre guide sur la sécurité des agents IA en PME.
Questions fréquentes
Dois-je m'inquiéter si j'utilise Claude Code dans VS Code ou en terminal ?
D'après Anthropic et Microsoft, non. Les versions piégées n'ont pas été publiées sur le marketplace de Microsoft ni sur le paquet npm @anthropic-ai/claude-code. Le risque concernait la distribution via Cursor. Vérifiez quand même d'où votre extension a été installée.
Quelle version de l'extension Claude Code est sûre ?
La 2.1.314 et les suivantes sont confirmées sans le chargeur. La 2.1.312 d'Open VSX a été vérifiée propre par StepSecurity, mais le plus simple est de passer sur la 2.1.314 ou plus et de vérifier l'origine.
Combien d'utilisateurs ont été touchés ?
Cursor donne un plafond de 5 000 utilisateurs, selon The Hacker News et StepSecurity. Ce nombre compte les téléchargements possibles, pas les machines réellement compromises.
Désinstaller l'extension suffit-il ?
Non. Le malware écrit une clé dans authorized_keys et installe une tâche de persistance qui survit à la désinstallation. Il faut supprimer la clé et les fichiers, ce que les scripts de Cursor font.
Notre avis : pas de panique, mais pas de réflexe d'autruche
Le risque réel est faible pour la plupart des lecteurs : fenêtre de 11 heures, deux systèmes, une marketplace précise, et une porte SSH qui exige souvent des droits que la session n'a pas. Mais si vous avez mis à jour Cursor le 29 octobre dans la journée, vous perdez 30 secondes à lancer le grep. Si la clé s'affiche, vous perdez une demi-journée, et c'est la bonne dépense.
Ce que je retiens du dossier : les outils de code IA se vendent comme des assistants, mais ils ont l'accès d'un administrateur. Traitez leurs extensions comme n'importe quel logiciel installé avec des droits : source connue, mise à jour décalée, secrets hors de la session de dev. Cursor s'en sort plutôt bien dans sa réaction, avec retrait en moins de 11 heures, scripts publiés et serveur coupé. L'inconnue qui reste, c'est le « comment » : tant qu'on ne sait pas comment l'identifiant d'Anthropic a été détourné, d'autres marketplaces peuvent avoir le même trou.