Une fausse extension Claude Code infiltre Cursor, jusqu'à 5 000 installations

Une fausse extension Claude Code infiltre Cursor, jusqu'à 5 000 installations

Le 29 octobre, Cursor a publié un avis de sécurité : sa place de marché d'extensions VS Code a hébergé une version altérée, Anthropic.claude-code 2.1.313. Cette version n'a pas été développée par Anthropic et a été téléchargée par environ 5 000 utilisateurs au maximum. Cursor a retiré la version, fermé un temps l'ensemble de la place de marché, fait tourner ses propres clés, puis reconstruit et remis le service en ligne ; l'entreprise indique qu'elle contactera un par un les utilisateurs concernés.

D'après les horaires donnés dans l'avis, la version malveillante était téléchargeable à partir d'environ 2 h 27 du matin, heure du Pacifique, ce jour-là, et n'a été retirée qu'à 13 h 35, soit environ 11 heures plus tard. Cursor affirme qu'à ce stade aucun signe de modification n'a été relevé sur la version officielle ni sur les autres extensions de la place de marché.

Ce qu'elle fait une fois installée

L'extension commence par collecter une série d'informations sur la machine : nom d'hôte, nom d'utilisateur, système d'exploitation et architecture, chemin du répertoire personnel, noms des variables d'environnement, répertoire de travail courant, e-mail Git et IP publique. Elle les envoie ensuite par HTTP POST à l'interface /beacon, sur le port 8099 du serveur de l'attaquant.

Elle tente ensuite de laisser une porte dérobée durable : elle écrit la clé publique SSH de l'attaquant dans authorized_keys, active le service SSH local et établit un tunnel SSH inversé vers l'extérieur. Sous macOS, elle utilise un LaunchAgent pour la persistance ; sous Windows, elle essaie d'enregistrer une tâche planifiée sous SYSTEM et, en cas d'échec, se rabat sur un script de démarrage. Un script d'arrière-plan retente le tunnel environ toutes les 60 secondes.

Le code de l'attaquant présente lui-même des défauts. Sauf si Cursor a été lancé avec des droits d'administrateur, l'étape de création du tunnel échoue le plus souvent. Le serveur de l'attaquant a en outre été mis hors ligne par l'hébergeur, de sorte que ni le tunnel ni la remontée d'informations ne peuvent actuellement aboutir. Cursor rappelle qu'un tunnel non établi ne signifie pas que tout va bien : la clé publique, les scripts de persistance et les informations de la machine déjà envoyées ont pu être déposés ou transmis.

« Uninstalling the extension may not be sufficient — the payload drops standalone persistence scripts that keep running. » (Désinstaller l'extension peut ne pas suffire : la charge dépose des scripts de persistance autonomes qui continuent de s'exécuter.)

Ce que les utilisateurs doivent vérifier

La méthode de vérification de l'avis est assez directe : regarder si la liste des clés SSH autorisées contient une clé publique nommée svc-telemetry ; chercher dans les journaux de terminal, de réseau et d'installation d'extensions les IP, le port et les empreintes des deux fichiers VSIX qu'il énumère (un paquet pour macOS arm64, un autre pour Windows x64). Les machines présentant des traces d'exécution doivent d'abord être isolées ; on utilise ensuite le script officiel pour supprimer clés, éléments de persistance et processus de tunnel, puis on réinstalle si nécessaire.

La dernière étape est la plus facile à négliger : tous les identifiants et sessions auxquels cette machine avait accès doivent être changés, et depuis un ordinateur sain. Selon Cursor, l'extension n'a lu que les noms des variables d'environnement, pas leurs valeurs, mais une fois la porte dérobée ouverte, l'attaquant peut très bien revenir les récupérer.

Les outils de programmation, cible de la chaîne d'approvisionnement

Sur l'année écoulée, les incidents de chaîne d'approvisionnement autour des outils de programmation par IA n'ont pas cessé. Nous avons rapporté l'empoisonnement de LiteLLM 1.107.0, conçu pour voler des clés de services d'IA, ainsi qu'une faille dans un plugin VS Code qui a entraîné le vol de 3 800 dépôts GitHub. Cette fois, l'attaquant a choisi le nom Claude Code : la base installée est large et les utilisateurs ont l'habitude de lui accorder des droits sur le terminal et les fichiers, si bien que l'usurpation rapporte beaucoup.

Les éditeurs dérivés de VS Code comme Cursor et Windsurf ne peuvent pas utiliser directement la place de marché officielle de Microsoft ; ils ne peuvent que se brancher sur Open VSX ou monter leur propre canal de distribution, et les mécanismes de validation et de signature varient d'un acteur à l'autre. Anthropic n'a pour l'instant pas réagi publiquement, et Cursor n'a pas non plus expliqué comment la version usurpée a pu être publiée sous l'identité de l'éditeur officiel. Tant que ce maillon n'est pas réparé, d'autres extensions populaires pourraient être usurpées de la même façon.

Pour les développeurs en Chine, les utilisateurs de Cursor sont nombreux, et les machines de réseaux internes d'entreprise équipées de ce type d'éditeur le sont aussi. Si vous avez mis à jour l'extension Claude Code autour du 29 octobre, suivre les étapes ci-dessus coûte très peu.

Sources : avis de sécurité de Cursor (pour vérifier le numéro de version concerné, la période de téléchargement et le plafond de 5 000 utilisateurs), CocoLoop, liste d'indicateurs de compromission jointe à l'avis de Cursor (pour vérifier le port, l'intervalle de nouvelle tentative et les deux empreintes VSIX).