Analyse technique : extension Claude Code trojanisée sur la place de marché de Cursor, porte dérobée SSH par mise à jour

Le 29 octobre 2026, la place de marché d’extensions de Cursor a distribué pendant environ onze heures deux versions modifiées de l’extension Claude Code, publiées sous l’identifiant légitime de l’éditeur. Cette analyse s’adresse aux auditeurs, RSSI et responsables sécurité : mode opératoire, correspondance avec MITRE ATT&CK, détection, questions d’audit ISO 27001 et pistes de sensibilisation. Le vecteur d’injection de la mise à jour dans la place de marché n’est pas publié à ce stade.

Pour une lecture orientée dirigeant, voir notre décryptage « Extension Claude Code piégée : quand une mise à jour officielle ouvre une porte dérobée ».

Contexte

  • Sources : avis de sécurité de Cursor, 29 octobre 2026, mis à jour le 30 octobre ; analyse d’OpenSourceMalware relayée par The Hacker News, 30 octobre 2026.
  • Périmètre : versions 2.1.312 et 2.1.313 de l’extension, pour Windows et macOS, installées ou mises à jour depuis la place de marché d’extensions VS Code de Cursor entre 2 h 27 et 13 h 35, heure du Pacifique, le 29 octobre 2026 (10 h 27 à 21 h 35, heure de Paris). Au plus 5 000 utilisateurs selon Cursor, qui dit les contacter directement.
  • Hors périmètre : Open VSX et la place de marché de Microsoft (la première version de l’article de The Hacker News citait Open VSX ; elle a été corrigée). Anthropic a publié la version 2.1.314 sur ces deux places de marché.
  • Réaction de la plateforme : retrait de la version, fermeture complète de la place de marché par précaution, audit des accès (aucune autre extension modifiée selon Cursor), rotation des clés, reconstruction et remise en ligne ; serveur de l’attaquant mis hors ligne avec l’hébergeur.
  • Attribution : aucune.

Mode opératoire : ce qui est documenté et ce qui ne l’est pas

Étape Ce qui est rapporté Correspondance MITRE ATT&CK (notre lecture)
Accès initial Version modifiée d’une extension légitime publiée sur la place de marché de Cursor sous l’identifiant de l’éditeur, comme une mise à jour ; méthode d’injection inconnue T1195.002 Compromise Software Supply Chain
Exécution Chargeur d’une soixantaine de lignes inséré en tête du fichier JavaScript principal ; déclenchement au démarrage de l’éditeur et à l’ouverture de la vue de l’extension ; installation possible par mise à jour automatique T1176 Software Extensions (extension d’IDE)
Reconnaissance Nom d’hôte, utilisateur, système et architecture, dossiers personnel et de travail, e-mail Git global, IP publique obtenue via un service légitime, noms (pas les valeurs) d’au plus 40 variables d’environnement contenant des motifs évoquant des secrets T1082 System Information Discovery ; T1033 System Owner/User Discovery ; T1016 System Network Configuration Discovery
Envoi des données Requête HTTP non chiffrée vers un serveur de l’attaquant T1041 Exfiltration Over C2 Channel ; T1071.001 Web Protocols
Accès persistant Ajout d’une clé publique de l’attaquant, au commentaire évoquant la télémétrie, au fichier des clés SSH autorisées ; tentative d’activation du service SSH local T1098.004 Account Manipulation: SSH Authorized Keys ; T1021.004 Remote Services: SSH
Tunnel Tunnel SSH inversé vers l’infrastructure de l’attaquant, relancé environ toutes les 60 secondes par des scripts d’arrière-plan T1572 Protocol Tunneling
Persistance macOS : agent de lancement dont le nom imite un composant Apple ; Windows : tâche planifiée visant le compte SYSTEM, repli dans le dossier de démarrage ; Linux : tâche cron au redémarrage (indicateurs publiés par Cursor) T1543.001 Launch Agent ; T1053.005 Scheduled Task ; T1547.001 Startup Folder ; T1053.003 Cron ; T1036 Masquerading

Faits techniques connus sur l’effet réel

  • Selon Cursor, l’activation du service SSH local exige des droits administrateur, que l’extension n’a pas sur la plupart des postes Windows et macOS : l’étape échoue alors, et l’attaquant n’a pas pu se connecter par le tunnel. Cursor évoque aussi des erreurs dans le code malveillant qui faisaient échouer cette étape hors cas inhabituels (éditeur lancé en administrateur).
  • La clé, la persistance et l’envoi des informations sur l’hôte ont en revanche bien eu lieu. Les scripts de persistance sont autonomes : désinstaller l’extension ne les supprime pas.
  • Aucune charge supplémentaire n’a été observée. Là où le tunnel a fonctionné, il donnait un accès interactif au compte, donc aux secrets présents sur le poste.

Ce qu’on ne sait pas

  • Comment la version modifiée a été publiée sur la place de marché de Cursor (compte d’éditeur, chaîne de publication, infrastructure de la place de marché).
  • Le nombre de postes réellement touchés (le chiffre de 5 000 est un maximum) et le nombre de postes où le tunnel s’est établi.
  • L’usage fait par l’attaquant des informations collectées.

Détection : un poste de développeur se met à accepter des connexions

  • Pourquoi c’est discret : identifiant et éditeur légitimes ; mise à jour silencieuse ; noms de clé, de tâche et d’agent imitant de la télémétrie ou des composants système ; trafic SSH sortant qui peut sembler normal sur un poste de développeur.
  • Ce qui peut alerter un SOC ou un EDR : modification du fichier des clés SSH autorisées sur un poste de travail ; installation ou activation d’un serveur SSH sur un poste ; connexion SSH sortante persistante avec redirection de port distante ; création d’un agent de lancement ou d’une tâche planifiée au nom « système » hors des emplacements habituels ; requête HTTP en clair vers une adresse IP sans nom de domaine depuis le processus de l’éditeur de code.
  • Remédiation selon Cursor : vérifier la présence de la clé, rechercher les indicateurs publiés dans la télémétrie, isoler les hôtes touchés, supprimer clé, persistance et processus de tunnel (et envisager la réinstallation), puis changer les identifiants et sessions accessibles depuis l’hôte, à partir d’un système sain. Les indicateurs techniques sont dans l’avis de Cursor et ne sont pas repris ici.

Questions d’audit ISO 27001:2022

  1. A.5.19 et A.5.21 (sécurité de l’information dans les relations avec les fournisseurs ; gestion de la sécurité de l’information dans la chaîne d’approvisionnement TIC) : « Les places de marché d’extensions et les éditeurs d’outils de développement, y compris d’IA, sont-ils recensés comme fournisseurs ? Qui a validé la source des extensions utilisées, sur quels critères, et qui suit leurs avis de sécurité ? »
  2. A.5.9 et A.8.19 (inventaire des informations et autres actifs associés ; installation de logiciels sur des systèmes en exploitation) : « Montrez-moi l’inventaire des extensions installées sur les postes de développement, avec leur source. Existe-t-il une liste d’extensions autorisées ? Comment les mises à jour automatiques d’extensions sont-elles encadrées (délai, source unique, possibilité de figer une version) ? »
  3. A.8.16 et A.8.9 (activités de surveillance ; gestion des configurations) : « Quelles alertes remontent lors d’une modification des clés SSH autorisées, de l’activation d’un service SSH ou d’une connexion SSH sortante persistante sur un poste ? La configuration de référence des postes interdit-elle un serveur SSH actif ? »
  4. A.5.17, A.8.2 et A.5.26 (informations d’authentification ; droits d’accès privilégiés ; réponse aux incidents de sécurité de l’information) : « Quels secrets sont accessibles depuis un poste de développement, et sous quelle forme (variables d’environnement, fichiers, coffre) ? Les développeurs travaillent-ils sans droits administrateur ? Existe-t-il une procédure testée de révocation de tous les secrets d’un poste compromis, et en combien de temps ? »

Pistes de sensibilisation

  • Pour les développeurs : « Une extension est un logiciel installé, avec vos droits. » Faire l’inventaire, en séance, des extensions de chacun (source, utilité, dernière utilisation) et supprimer celles qui ne servent plus. Support : la fiche « Pourquoi et comment bien gérer ses mises à jour ? » de Cybermalveillance.gouv.fr (sources officielles, inventaire des logiciels), avec la nuance du cas : une source officielle peut aussi être compromise, d’où l’importance de suivre ses avis de sécurité.
  • Pour les équipes informatiques : exercice « poste de développeur compromis ». En 30 minutes, dérouler l’isolement, le retrait de la clé et de la persistance, la liste des secrets à changer et l’ordre de changement depuis un poste sain ; mesurer le temps réel de révocation.
  • Pour les acheteurs et responsables de prestataires : ajouter aux questions posées aux prestataires de développement la gestion de leurs postes (droits, extensions, secrets) et leur délai de réaction aux avis de sécurité de leurs outils.

À lire aussi : notre décryptage « Extension Claude Code piégée : quand une mise à jour officielle ouvre une porte dérobée » et notre bulletin de veille du 31 octobre 2026.

Analyse préparée avec l’aide d’une intelligence artificielle à partir de sources publiques, sous la responsabilité de KyNeo. Malgré nos contrôles, des erreurs peuvent subsister : en cas de doute, référez-vous aux sources citées. Les informations non confirmées sont signalées comme telles.