ActualitéIA

Une extension Claude Code piégée a touché jusqu’à 5 000 utilisateurs de Cursor

Onze heures sur la boutique de Cursor : la version 2.1.313 ajoutait la clé SSH de l'attaquant et un script persistant. Cursor demande la 2.1.314.

Le 29 octobre 2026, Cursor a retiré de sa boutique d’extensions une version piégée de Claude Code pour VS Code, l’extension qui intègre l’agent de programmation d’Anthropic à l’éditeur de code. Publiée sous l’identifiant Anthropic.claude-code, en version 2.1.313, elle y est restée en ligne d’environ 10 h 27 à 21 h 35, heure de Paris, pour les Mac à puce Apple et les PC Windows x64. Selon l’avis de sécurité publié le jour même par Cursor, cette version tentait d’installer une porte dérobée SSH persistante et « n’a pas été développée par Anthropic ». Au maximum 5 000 utilisateurs ont été touchés, et Cursor annonce qu’il les contactera directement.

Le 30 octobre à 8 h 46, Cursor a demandé sur X à tous ses clients de passer à la version 2.1.314. Le scénario rappelle celui de Rank Math PRO, dont l’éditeur a diffusé pendant onze heures des mises à jour contenant une porte dérobée, les 15 et 16 octobre. Dans les deux cas, la version piégée est arrivée par le canal de mise à jour habituel des utilisateurs : le site de l’éditeur pour Rank Math PRO, la boutique d’extensions de Cursor pour Claude Code.

Onze heures sur la boutique de Cursor

Cursor, éditeur de code doté d’agents IA et conçu par la société Anysphere, gère sa propre boutique d’extensions VS Code. Son avis situe la diffusion de la version piégée « entre environ 2 h 27 et 13 h 35 (heure du Pacifique) ». L’avis vise ceux qui ont installé la 2.1.313 depuis cette boutique pendant ce créneau, ou l’ont reçue par une mise à jour. Deux paquets sont en cause : darwin-arm64 pour macOS et win32-x64 pour Windows.

Le site de veille OpenSourceMalware, qui a analysé le paquet, décrit une extension identique à l’originale à un fichier près, binaire officiel compris. Dans extension.js, 66 lignes de code malveillant ont été insérées avant le code légitime. Elles s’exécutent dès que l’éditeur de code charge l’extension, sans que l’utilisateur ait besoin d’ouvrir une conversation avec Claude.

La 2.1.313 n’apparaît dans aucun autre canal de diffusion de Claude Code : le journal des modifications publié par Anthropic sur GitHub passe de la 2.1.312 à la 2.1.314, et ni le registre npm, ni Open VSX, ni la boutique d’extensions de Microsoft (Visual Studio Marketplace) ne la proposaient le 30 octobre. La 2.1.314 y est apparue dans la nuit, vers 1 h 12 sur npm, puis entre 2 h 07 et 2 h 20 sur Open VSX et chez Microsoft, d’après les horodatages de ces registres.

Extraits de l'avis de sécurité de Cursor du 29 octobre 2026 : le titre, l'annonce d'au maximum 5 000 utilisateurs touchés et la liste de ce que fait la version 2.1.313 piégée de l'extension Claude Code
Capture (extraits) : avis de sécurité de Cursor sur la version 2.1.313, version française, 29 octobre 2026

Une clé SSH ajoutée, un script persistant et un rapport à l’attaquant

D’après Cursor, l’extension piégée commence par relever des informations sur la machine et son utilisateur : nom d’hôte, nom d’utilisateur, système d’exploitation, architecture, chemin du répertoire personnel, noms des variables d’environnement, répertoires de travail, adresse e-mail configurée dans Git et adresse IP publique. OpenSourceMalware précise que le code retient les noms d’au plus 40 variables contenant KEY, TOKEN, SECRET, PASS, AWS ou GCP, sans leurs valeurs. Ces noms peuvent déjà révéler quels services cloud et quels types d’identifiants sont configurés sur le poste, note le site.

Le code ajoute ensuite une clé SSH contrôlée par l’attaquant au fichier authorized_keys de l’utilisateur. Il tente d’activer le service SSH de la machine et d’ouvrir un tunnel SSH inversé vers le serveur de l’attaquant : une connexion sortante, maintenue depuis le poste, que l’attaquant pourrait emprunter en sens inverse pour entrer sur la machine si le service SSH y est actif.

Pour rendre ce tunnel persistant, il installe sur macOS un agent de lancement (LaunchAgent) nommé com.apple.sysmond.plist. Le nom imite ceux d’Apple, mais le fichier n’a rien d’un composant Apple, relève OpenSourceMalware. Sur Windows, il tente de créer une tâche planifiée baptisée SysMon, avec les droits SYSTEM, et, à défaut, dépose un script dans le dossier Démarrage de l’utilisateur. Des scripts relancent le tunnel environ toutes les 60 secondes.

L’extension envoie aussi au serveur de l’attaquant les informations collectées et l’état de la porte dérobée, par une requête HTTP sur le port 8099. Selon OpenSourceMalware, ce code ne télécharge aucun autre programme malveillant et ignore les réponses du serveur.

L’accès SSH échouait sur la plupart des machines

L’activation du service SSH demande des droits d’administrateur, dont l’extension ne dispose pas sur la plupart des machines macOS et Windows, écrit Cursor. L’étape y échoue et « l’attaquant n’a pas pu se connecter via le tunnel », sauf dans le cas « très inhabituel » où Cursor avait été lancé avec des privilèges d’administrateur. Cursor évoque aussi des « erreurs dans le code malveillant ». La société de sécurité Phorion en décrit une sur macOS : lancée par un utilisateur standard, la commande qui vérifie l’état de la session à distance renvoie un message d’erreur au lieu de « Off », et le script saute alors l’étape d’activation.

L’échec du tunnel n’arrête pas le reste du code : l’extension ajoute quand même la clé de l’attaquant, installe ses mécanismes de persistance et envoie les informations de la machine, précise Cursor. Il prévient que « désinstaller l’extension peut ne pas suffire », car les scripts de persistance continuent de s’exécuter. Le serveur de l’attaquant ne répond plus, Cursor ayant obtenu de l’hébergeur qu’il le mette hors ligne.

Plusieurs points restent sans réponse. Cursor n’explique pas comment la version piégée est entrée dans sa boutique, et OpenSourceMalware rapporte seulement que Cursor lui a parlé d’une « forme de compromission » de l’extension sur cette boutique. Le chiffre de 5 000 est un plafond : Cursor ne dit pas combien de machines ont réellement exécuté le code. Le premier article d’OpenSourceMalware attribuait la version piégée au registre Open VSX, et le site l’a corrigé après avoir été contacté par Cursor.

Le 30 octobre en début d’après-midi, Anthropic n’avait publié aucune déclaration sur son site d’actualités, sur sa page d’état des services ni parmi les avis de sécurité du dépôt GitHub de Claude Code.

Cursor reconstruit sa boutique et publie des scripts de nettoyage

Cursor dit avoir supprimé la version dès sa détection et bloqué sa diffusion, puis fermé entièrement sa boutique d’extensions « par mesure de précaution supplémentaire ». Son audit des accès n’a révélé aucune autre extension modifiée, ajoute-t-il. La société a renouvelé ses clés, reconstruit la boutique et l’a remise en ligne. Selon Cursor, « rien n’indique que d’autres versions de l’extension ou la distribution officielle soient affectées » ; pour OpenSourceMalware, le paquet npm et les extensions d’Open VSX et de la boutique de Microsoft ne sont pas malveillants.

Pour savoir si une machine est touchée, Cursor conseille de chercher la chaîne svc-telemetry, le libellé de la clé de l’attaquant, dans le fichier ~/.ssh/authorized_keys sur macOS, et sur Windows dans le fichier de l’utilisateur et dans celui de ProgramData. Si la chaîne apparaît, Cursor fournit des scripts de nettoyage, à lancer sous le compte concerné sur macOS et depuis une fenêtre PowerShell ouverte en administrateur sur Windows.

L’avis recommande d’isoler la machine, de déterminer s’il faut la réinstaller et de renouveler, à partir d’un poste sain, les identifiants et les sessions accessibles depuis cette machine. La collecte limitée des variables « n’exclut pas un accès ultérieur aux informations d’authentification via la porte dérobée », souligne Cursor. Le document liste aussi les indicateurs de compromission : adresse du serveur, empreintes des paquets, fichiers créés.

Dans son message sur X, Cursor ajoute que l’incident ne touche ni les autres extensions de sa boutique, ni « Grok Bot, Grok », ni ses autres produits SpaceXSI. Cursor appartient à SpaceX, qui l’a racheté en août selon BusinessToday.

Notre analyse

Dans la boutique de Cursor, l’attaquant a repris l’identifiant officiel de l’extension, Anthropic.claude-code, et le numéro qui suivait celui de la dernière version authentique (2.1.312). Selon OpenSourceMalware, l’extension gardait son interface habituelle pendant que le code malveillant s’exécutait. Pour un utilisateur, la 2.1.313 ressemblait à une mise à jour ordinaire.

Depuis la mi-octobre, plusieurs éditeurs d’outils professionnels ont vu leur propre infrastructure se retourner contre leurs clients. Après Rank Math PRO, des clés volées chez TeamUpdraft ont servi à installer des extensions piégées sur des sites WordPress équipés d’UpdraftPlus les 18 et 19 octobre, et une intrusion chez OpenCode, reconnue le 17 octobre, a pu exposer des clés API OpenAI et Anthropic. Le cas de Cursor ajoute à la liste la boutique d’extensions d’un éditeur de code : un point de défaillance unique pour tous ceux qui s’y servent.

Le périmètre annoncé se limite à la version 2.1.313 distribuée par la boutique de Cursor : ni l’avis ni le message sur X ne mentionnent les utilisateurs de VS Code passant par la boutique de Microsoft, ni ceux de Claude Code dans le terminal. Le risque tient aux droits de ces outils : une extension s’exécute avec les permissions de l’éditeur de code et de son utilisateur, rappelle Phorion, et un agent de programmation travaille au milieu du code source, des clés SSH et des accès aux services cloud.

Même là où l’accès SSH a échoué, la clé de l’attaquant et les scripts persistants restent sur le disque tant que personne ne les supprime, et les informations des machines sont parties vers le serveur tant qu’il fonctionnait. On attend encore l’explication de Cursor sur l’entrée de la version piégée dans sa boutique, une éventuelle réaction d’Anthropic, dont le nom a servi de couverture, et le nombre de machines où la clé svc-telemetry a réellement été trouvée.

Sources

Image d’en-tête : graphique MACCUS. Données : Cursor, registres npm, Open VSX et Visual Studio Marketplace, consultés le 30 octobre 2026

Laisser un commentaire