Extension Claude Code sur Cursor : détecter la porte dérobée
Déterminez si votre poste a reçu l’extension Claude Code modifiée depuis le catalogue de Cursor. Vérifiez les versions, la période d’installation, les clés SSH et la persistance. Exécutez les scripts officiels avec les droits requis, contrôlez leurs résultats et révoquez les identifiants accessibles avant de réinstaller depuis une source vérifiée.
Sommaire

Si vous avez installé l’extension Claude Code 2.1.312 ou 2.1.313 via Cursor pendant la période concernée, vérifiez le poste avant de reprendre le travail. Isolez et nettoyez les postes présentant des indicateurs malveillants. Depuis un appareil de confiance, révoquez et remplacez les identifiants auxquels ces postes pouvaient accéder. Une simple mise à jour de l’extension ne supprime pas ses mécanismes de persistance.
Votre installation est-elle concernée ?
Examinez le poste si votre installation correspond aux critères ci-dessous ou si vous trouvez un indicateur, quelle que soit la date d’installation. Au 2026-11-02, l’avis de sécurité de Cursor délimite ainsi l’incident :
| Point à vérifier | Périmètre annoncé |
|---|---|
| Extension | Anthropic.claude-code, distribuée via Cursor VS Code Extension Marketplace |
| Versions | Copies modifiées de 2.1.312 et 2.1.313 |
| Plateformes | macOS et Windows |
| Période d’installation ou de mise à jour | Environ 02:27–13:35 PDT le 2026-10-29 |
| Même période en UTC | Environ 09:27–20:35 UTC le 2026-10-29 |
Selon Cursor, Anthropic n’a pas développé ces paquets modifiés. Incluez les mises à jour automatiques dans votre examen. La version installée aujourd’hui peut différer de celle présente au moment de l’incident.
N’ouvrez pas Cursor sur un poste suspect. Consultez les journaux d’installation ou examinez les métadonnées de l’extension sur le disque, dont package.json, sans charger l’extension. Notez la version, la plateforme, la source et l’heure d’installation.
Ne vous fiez pas à claude --version pour vérifier l’extension. La documentation d’Anthropic précise qu’elle intègre sa propre CLI, ou interface en ligne de commande. Le terminal peut exécuter une installation distincte.
L’analyse indépendante de Microsoft confirme que les distributions de Microsoft Visual Studio Marketplace et de npm n’ont pas été touchées par cet incident. Le numéro de version seul ne distingue pas un paquet authentique d’une copie modifiée.
Évaluez Linux séparément. L’analyse de Phorion relève du code pour Linux, mais le périmètre de distribution confirmé par Cursor mentionne macOS et Windows. Examinez les traces correspondantes sur Linux. Ne considérez pas leur distribution comme confirmée sur cette plateforme et n’y lancez pas le script de nettoyage pour macOS.
Exécutez les vérifications officielles de clé SSH
Lancez la vérification pour le compte affecté, puis rapprochez le résultat des preuves d’installation et de persistance. Le message indiquant une correspondance est svc-telemetry key found.
Voici les commandes publiées par Cursor. Leur message négatif ne prouve pas que le poste n’a jamais été affecté.
macOS : Bash
Exécutez cette commande dans un terminal, sous le compte de l’utilisateur affecté :
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"
La commande recherche un commentaire précis dans un seul fichier. Son option -s masque aussi les messages de fichier absent et d’erreur de lecture. Si le fichier est illisible, cherchez la cause avant de considérer le résultat négatif comme une preuve de sécurité.
Windows : PowerShell
Exécutez la vérification de Cursor sur le profil de l’utilisateur affecté :
$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ésolvez les erreurs d’accès lors du contrôle du fichier partagé des administrateurs. Si vous utilisez un autre compte pour obtenir les droits administrateur, la valeur de $HOME change. Vérifiez également le profil initialement affecté.
Si le marqueur est présent, isolez le poste et vérifiez la clé. Cursor publie cette empreinte de la clé qui autorise l’accès de l’attaquant :
SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk
Sur macOS, cette commande OpenSSH de consultation des empreintes permet de comparer les entrées sans modifier le fichier :
ssh-keygen -lf "$HOME/.ssh/authorized_keys" -E sha256
Si l’analyse du fichier échoue ou si les commentaires diffèrent, comparez la clé elle-même avec celle de l’avis. Les scripts de nettoyage prévoient le cas où la clé malveillante a été ajoutée à une ligne existante. Ne supprimez pas toute la ligne sans l’examiner : elle peut aussi contenir une clé légitime.
Recherchez la persistance et conservez les preuves
Vérifiez les fichiers et les actions de démarrage ci-dessous avant de considérer le poste comme nettoyé. Ce sont des indicateurs à examiner, pas des noms à supprimer sans distinction.
| Zone | Indicateurs de l’avis de Cursor |
|---|---|
| Fichiers macOS | ~/.config/.smt, ~/.config/.smtk, ~/Library/LaunchAgents/com.apple.sysmond.plist |
| Démarrage macOS | LaunchAgent portant le label com.apple.sysmond |
| Fichiers Windows | %USERPROFILE%\.config\smt.cmd, %USERPROFILE%\.config\smtk |
| Démarrage Windows | Tâche planifiée SysMon ; solution de repli : %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd |
| Fichiers temporaires | $TMPDIR/.stk_<10 hex> sur macOS ; %TEMP%\.stk_<10 hex> sur Windows |
| Réseau | Connexions vers 134[.]209[.]82[.]225, dont SSH sur TCP 22 et HTTP /beacon sur le port 8099 |
Le suffixe <10 hex> décrit un motif de nom de fichier ; les chevrons ne font pas partie du nom réel. Avant de supprimer un élément de démarrage, examinez son action configurée et les fichiers associés.
Sur les postes de l’équipe, conservez le paquet de l’extension, les fichiers de clés concernés, la configuration de démarrage et les journaux du poste. Suivez votre procédure de réponse aux incidents. Isolez les postes présentant des preuves d’exécution du code malveillant ou d’installation de la porte dérobée. Fermer l’éditeur ne supprime pas les scripts indépendants.
Phorion a constaté que le code injecté s’exécute dès que Node charge le module, avant l’appel habituel à activate dans l’extension. Il n’est pas nécessaire d’envoyer une requête à Claude pour déclencher ce code.
Cursor indique que le serveur de l’attaquant a été mis hors ligne. Cela coupe le canal de connexion décrit, mais ne supprime pas les traces locales. Un échec de l’activation de SSH n’exclut pas non plus l’ajout de la clé, les fichiers de persistance ou la collecte d’informations du poste.
Exécutez le script de nettoyage de Cursor et vérifiez ses limites
Utilisez le script lié depuis l’avis de Cursor après avoir conservé les preuves nécessaires. Lisez le fichier téléchargé avant de l’exécuter et fermez les éditeurs.
Les scripts ciblent les répertoires modifiés de l’extension, les processus du tunnel, les fichiers créés, la persistance et la clé de l’attaquant. Révoquez séparément les identifiants API et examinez l’activité du poste au-delà des résultats du nettoyage.
Nettoyage sur macOS
Téléchargez le script de nettoyage de Cursor pour macOS. Exécutez-le depuis le dossier où vous l’avez enregistré, sous chaque compte affecté et sans sudo :
bash remediate-macos.sh
echo "Exit status: $?"
Le script refuse de s’exécuter en tant que root. Il cible le LaunchAgent com.apple.sysmond, les processus et fichiers correspondants, ainsi que les paquets d’extension contenant svc-telemetry. Il retire la clé de l’attaquant par correspondance exacte de son texte.
Nettoyage sur Windows
Téléchargez le script de nettoyage de Cursor pour Windows. Ouvrez PowerShell avec Run as Administrator, puis exécutez la commande depuis le dossier contenant le fichier :
powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1
$LASTEXITCODE
Le script parcourt les profils utilisateur enregistrés. Il cible l’action malveillante de la tâche, les processus correspondants, les répertoires d’extension, les fichiers créés et les clés autorisées des profils.
Après le nettoyage, vérifiez de nouveau C:\ProgramData\ssh\administrators_authorized_keys séparément, si ce fichier existe. Si la clé de l’attaquant est présente, demandez à un administrateur de retirer précisément l’entrée non autorisée, en conservant les clés légitimes.
Un code de sortie non nul ou un message incomplete nécessite un suivi. Corrigez les erreurs signalées et relancez la vérification correspondante.
Le code 0 signifie seulement que le script n’a signalé aucun élément restant parmi ceux qu’il vérifie. Recherchez aussi les indicateurs publiés dans tout dossier personnalisé d’extensions. Vérifiez séparément la configuration du service SSH local et confirmez qu’elle correspond à votre configuration prévue.
Maintenez le poste isolé si les traces réapparaissent, si vous détectez un accès SSH inattendu ou si vous ne pouvez pas expliquer l’activité ultérieure. Demandez à l’équipe de réponse aux incidents d’évaluer une réinstallation complète avant d’y réintroduire des identifiants.
Révoquez et remplacez les identifiants accessibles depuis le poste affecté
Depuis un appareil de confiance, révoquez les identifiants exposés, y compris ceux sans rapport avec Claude Code. Ne placez pas leurs remplaçants sur le poste affecté avant la fin du nettoyage ou de la réinstallation.
Cursor décrit une collecte des noms de variables d’environnement. Cela ne démontre pas le vol de leurs valeurs. La recommandation de renouveler les identifiants tient aussi compte d’un éventuel accès ultérieur par la porte dérobée.
Utilisez cet inventaire pour attribuer les responsabilités et noter les actions terminées :
| Identifiants | Action nécessaire |
|---|---|
| Clés API Anthropic | Sur la page des clés API de Claude Console, ouvrez le menu de la clé affectée, choisissez Delete API key, puis créez une nouvelle clé. |
| Clés API OpenAI | Supprimez les clés affectées depuis le tableau de bord des clés API, créez leurs remplaçantes et recherchez une utilisation inhabituelle. |
| Jetons des services Git | Révoquez les jetons d’accès personnels et les autres identifiants accessibles auprès du service émetteur. Remplacez-les dans vos automatisations légitimes. |
| Clés SSH clientes | Remplacez les clés privées potentiellement exposées et retirez les autorisations de leurs anciennes clés publiques sur les services Git et les autres serveurs. |
| Identifiants cloud | Révoquez les clés d’accès exposées et traitez séparément les sessions temporaires. Recherchez les ressources non autorisées, les changements d’accès et les usages suspects. |
| Sessions des comptes | Révoquez les sessions affectées du navigateur, de la CLI et de l’authentification unique (SSO) via le service concerné ou l’administrateur des identités. |
Les instructions d’Anthropic en cas de clé compromise décrivent les options de suppression et de remplacement. Les conseils de sécurité d’OpenAI expliquent la suppression des clés API et l’examen de l’utilisation.
Sur GitHub, supprimez les jetons affectés dans les paramètres des jetons d’accès personnels. Examinez séparément les clés SSH et les sessions actives.
Pour AWS, suivez la procédure en cas d’exposition d’une clé d’accès. Consultez les instructions distinctes sur les identifiants temporaires pour les sessions de rôles.
Ajoutez les clés des passerelles API au même inventaire. Si vous utilisiez BetterToken, incluez votre clé API BetterToken. Sa console permet de créer des clés ; une nouvelle clé ne révoque pas à elle seule l’identifiant exposé. Confirmez la révocation auprès du service émetteur avant de considérer le remplacement comme terminé.
Supprimer svc-telemetry de votre poste ne révoque pas vos propres clés privées SSH sur les services distants. Effacer une valeur de configuration locale n’invalide pas non plus la clé API d’origine.
Pour une récupération plus complète, suivez la liste de révocation des identifiants et d’audit. Vérifiez la révocation auprès du service émetteur, mettez à jour les applications légitimes et confirmez que les requêtes prévues fonctionnent depuis un environnement de confiance.
Réinstallez depuis une source vérifiée après la récupération
Installez une version actuelle provenant d’une source fiable après le nettoyage ou sur un poste réinstallé. Dans son annonce de l’incident, Cursor demandait une mise à jour vers 2.1.314. C’est la version citée dans la recommandation liée à cet incident.
Passez par la page d’installation d’Anthropic pour accéder à la bonne fiche d’extension. Vérifiez l’éditeur, l’identifiant Anthropic.claude-code, le registre d’origine et la version installée. La vue Extensions affiche la version de l’extension après son installation.
Recherchez de nouveau les indicateurs publiés après une ouverture de session ou un redémarrage. Si la persistance réapparaît, cessez d’utiliser le poste et reprenez l’enquête.
L’installation pour le terminal utilise un paquet distinct. Le guide d’installation et de premier lancement de Claude Code aide à vérifier cette installation, mais ne nettoie pas un poste déjà affecté.
Vérifiez l’origine des extensions avant la prochaine installation
Contrôlez le lien d’installation du fournisseur et le registre réellement utilisé avant de vous fier à un nom familier. Notez l’éditeur, l’identifiant, la version, la plateforme et la source de téléchargement des paquets approuvés.
La documentation des extensions de Cursor prévient qu’un même nom publisher.extension peut désigner des éditeurs ou du code différents selon le registre.
Pour comparer des hash, choisissez le même artefact, la même plateforme et la même version. Le hash d’un paquet VSIX ne peut pas être comparé à celui de extension.js. Une différence avec un hash malveillant connu ne démontre pas l’authenticité du paquet.
Au 2026-11-02, Cursor documente Marketplace Install Cooldown (hours) pour les propriétaires et administrateurs d’équipes. Les équipes Enterprise peuvent aussi exiger des signatures valides d’extensions Open VSX avant l’installation.
Appliquez ces contrôles tout en vérifiant les instructions des agents et les configurations téléchargées. L’audit d’AGENTS.md et de la configuration de Claude Code couvre cette autre source d’instructions susceptibles de déclencher des commandes.