Extension Claude Code piégée dans la boutique Cursor : 5 000 installations et une porte dérobée SSH

5 min de lecture

Extension Claude Code piégée dans la boutique Cursor : 5 000 installations et une porte dérobée SSH

Une version piégée de l’extension Claude Code pour Visual Studio Code a été distribuée le 29 octobre dans la boutique Cursor. Elle installait une porte dérobée SSH persistante. Le problème a été résolu, mais l’extension frelatée a été installée par environ 5 000 personnes, ce qui relance la question des chaînes d’approvisionnement.

Le 29 octobre, entre 10h27 et 21h35 (heure de Paris), une version vérolée de l’extension Claude Code pour VS Code a été distribuée dans la boutique de Cursor. Estampillée 2.1.313, elle est restée en ligne assez longtemps pour être téléchargée. Cursor indique que les 5 000 personnes concernées sont actuellement contactées. L’éditeur affirme avoir supprimé la version, arrêté intégralement sa boutique d’extensions, audité les accès, renouvelé ses clés, reconstruit la boutique et fait mettre hors ligne le serveur de l’attaquant par son hébergeur. Les différents contrôles n’ont révélé aucune autre extension modifiée.

Un point de départ incertain

Le principal point flou reste l’origine exacte de l’attaque, qui dépend de la source. Phorion présente l’incident comme une compromission de la fiche officielle sur Open VSX, la boutique d’extensions pour l’environnement Eclipse. Phorion affirme aussi qu’Anthropic a retiré la version 2.1.313 d’Open VSX, de npm et du Marketplace de Microsoft pour VS Code. OpenSourceMalware, qui a publié la première analyse, indique que l’échantillon analysé provenait bien d’Open VSX. Le site en a déduit une diffusion par npm et le Marketplace de Microsoft en se basant sur un constat : la version 2.1.313 n’y figurait plus. Il précise que la provenance de l’artefact n’est pas établie et que ses conclusions ne prouvent pas une compromission de la distribution officielle d’Anthropic. Les retraits de npm et du Marketplace peuvent n’être qu’une mesure de sécurité visant à supprimer toutes les versions 2.1.313 existantes. Pour l’instant, ni Anthropic ni Microsoft n’ont réagi publiquement à l’incident.

StepSecurity affirme que la compromission a commencé chez Open VSX avant d’être étendue à Cursor, puisque la boutique de ce dernier est un intermédiaire dont la base se synchronise avec le registre Open VSX. Les contrôles de sécurité appliqués sur ce dernier sont limités, avec un examen portant sur les motifs malveillants les plus connus. L’extension vérolée aurait donc passé non seulement ces contrôles, mais également ceux de Cursor, plus poussés. Illustration de ces incertitudes : The Hacker News a mis à jour son article pour indiquer que la compromission venait de Cursor seul. Cela supposerait que l’infrastructure propre à Cursor ait été compromise, ce que l’éditeur ne dit pas clairement. Le nombre d’actions entreprises pourrait aller dans ce sens, Cursor ayant renouvelé ses clés et reconstruit son magasin.

Le fonctionnement du code malveillant

Si l’origine et le périmètre exact restent flous, le fonctionnement du code malveillant est mieux connu : les analyses de Phorion, OpenSourceMalware et Cursor s’accordent sur les détails. L’extension contient un chargeur de 66 lignes, placé en tête du fichier extension.js. Il se lance dès le chargement du module, sans action de l’utilisateur et donc avant même de lancer une conversation avec Claude. Ce chargeur ajoute une clé publique SSH liée à l’attaquant dans le dossier ~/.ssh/authorized_keys, pour lui donner un accès distant permanent sur l’ordinateur de la victime. La clé est étiquetée « svc-telemetry » pour paraître anodine. Le code vérifie ensuite que le service SSH est présent et actif. Dans le cas contraire, il tente de l’activer. Sur la plupart des Mac et PC sous Windows, l’étape échoue, faute de droits administrateur mais aussi parce que le code contient des erreurs. Sur Linux, le code réussit.

Le malware cherche ensuite à établir une connexion sortante vers le serveur de l’attaquant et à la maintenir ouverte. L’attaquant n’a plus qu’à emprunter ce tunnel en sens inverse pour atteindre la porte SSH et entrer avec sa clé privée, ouvrant la voie vers un terminal et la possibilité de lancer des commandes. Le code installe aussi un petit script qui se relance à chaque démarrage de l’ordinateur et retente la connexion une fois par minute. Sur macOS, ce script se déguise en composant Apple (com.apple.sysmond), sur Windows en tâche Sysmon ou en script dans le dossier Démarrage, et sur Linux en tâche planifiée. La désinstallation de l’extension ne suffit donc pas. Le code envoie enfin une fiche descriptive de la machine avec nom de l’ordinateur, utilisateur, système, adresse IP publique, adresse électronique Git et dossier de travail. Cette charge utile ne vole en elle-même aucune information cruciale, mais elle prépare le terrain. Le danger vient avant tout de ce que le pirate peut réaliser une fois la connexion établie via SSH.

Des vérifications à effectuer

La fiche de Cursor sur l’incident, publiée la veille au soir, mentionne uniquement des vérifications pour macOS et Windows. L’éditeur ne le dit pas explicitement, mais Linux ne semble curieusement pas concerné, malgré des détails techniques allant pourtant dans ce sens. Faute de script officiel, les analyses de Phorion et OpenSourceMalware présentent une série de commandes bash. Dans les trois cas, si une preuve de compromission est détectée, plusieurs manipulations seront nécessaires. La recommandation est claire : réinstaller complètement la machine sera l’option la plus sûre. Cursor indique dans son billet que les 5 000 personnes (environ) ayant installé l’extension modifiée sont contactées pour être averties du problème.

Source : NEXT