BLOG
Hot Tracking 031 | Backdoor dans l'extension Claude Code sur Cursor
Hot Tracking : Publication de sujets populaires × Analyse technique × Conseils pratiques.
Le 30 octobre, la société de sécurité Phorion a révélé un attaque en chaîne ciblant le marché d’extension propriétaire de Cursor : deux versions du extension Claude Code officielle d’Anthropic ont été infectées par des backdoors, mettant environ 5000 utilisateurs en danger. Les discussions sur ce sujet sont rapidement sorties en première page sur Hacker News, avec environ 908 upvotes et 533 commentaires à ce jour. Le point central est la question de savoir pourquoi le mécanisme d’audit du marché d’extension permettrait aux vrais éditeurs de publier des mises à jour malveillantes. Pour de nombreux développeurs utilisant Claude Code comme assistant de programmation AI quotidien, cet incident a sonné l’alarme sur la sécurité en chaîne cible et offre une occasion de reconsidérer les frontières de confiance dans leur environnement de développement. Le contenu de cette édition est basé sur le rapport de Phorion, l’annonce de sécurité de Cursor et les réponses des employés d’Anthropic sur Hacker News. Les détails techniques sont soumis aux instructions finales officielles.
Qu’est-ce qui s’est passé
Les versions malveillantes étaient anthropic.claude-code 2.1.312 et 2.1.313, distribuées via le marché d’extensions VS Code propriétaire de Cursor, et non via le marché officiel VS Code ou OpenVSX. La période d’exposition de Cursor était d’environ 02:27 à 13:35 heure du Pacifique le 29 octobre, pendant environ 11 heures, touchant au maximum 5000 utilisateurs.
Contrairement aux attaques de type phishing ou aux confusionnismes de nom, cette mise à jour a directement utilisé une identité d’éditeur légitime. Les attaquants ont obtenu le droit de publier des mises à jour anthropic.claude-code sur le marché de Cursor, sans que les utilisateurs aient de raison de s’interroger lors des mises à jour automatiques. Après la publication de Phorion le 30 octobre, Cursor a rapidement confirmé l’incident et retiré les versions malveillantes, réduisant ainsi la période d’exposition à moins d’une demi-journée.
Le payload exécute ses actions lors de l’chargement du module d’extension, avant même le callback normal activate, sans nécessiter d’interaction de l’utilisateur. Il collecte d’abord le nom d’hôte, le nom d’utilisateur, l’opérateur système, l’architecture, le répertoire home, le répertoire de travail actuel, l’adresse e-mail globale Git, ainsi que les noms d’environnements d’enregistrement correspondant à KEY, TOKEN, SECRET, PASS, AWS, GCP, etc. Les informations collectées sont envoyées en texte clair via HTTP vers 134.209.82.225:8099/beacon. Ensuite, il ajoute la clé publique Ed25519 de l’attaquant au fichier ~/.ssh/authorized_keys avec l’annotation svc-telemetry, tente d’activer le service SSH local et crée un tunnel SSH inverse vers le même serveur. Pour rester actif sur le long terme, il enregistre LaunchAgent sur macOS, crée des tâches planifiées sur Windows avec des scripts de démarrage, et enregistre crontab sur Linux, avec des scripts en arrière-plan réessayant le tunnel tous environ 60 secondes.
Dans ce cas, l’activation du service SSH local nécessite des droits d’administrateur. Sans ces droits, il est difficile de déclencher un shell inverse, mais la collecte d’informations, l’implantation des clés publiques SSH et la persistance peuvent être effectuées avec peu de droits. Cela signifie que même si l’utilisateur utilise l’éditeur avec des droits normaux, il pourrait déjà connaître les informations de l’ordinateur hôte et y avoir laissé un backdoor. Pour les développeurs utilisant Claude Code, le code malveillant pourrait mener à la collecte d’informations dès l’ouverture du projet. Plus complexe encore, les extensions VS Code s’exécutent dans l’environnement de processus principal Node.js, ce qui permet théoriquement d’appeler des modules tels que fs, child_process et net. Une fois cet environnement de hauts droits exploité par le code malveillant, cela équivaut à exécuter du code arbitraire localement. Phorion a pu localiser le serveur beacon parce que Payload utilise une connexion HTTP en texte clair, exposant ainsi directement l’infrastructure de l’attaquant. Cette méthode de connexion non chiffrée réduit certes la discrétion de l’attaquant, mais elle permet également à de nombreux ordinateurs de renvoyer les informations en quelques heures.
Le positionnement officiel ne correspond pas
Anthropic a rapidement clarifié : ce n’est pas le système d’Anthropic ou des ordinateurs des employés qui ont été piratés. 2.1.313 n’a jamais été publié sur OpenVSX, VS Code Marketplace ou les canaux officiels d’Anthropic. Seul le Cursor Marketplace a été affecté. La prochaine version ignorera 2.1.313 pour publier directement 2.1.314 afin de faire la distinction.
La réaction de Cursor a également été rapide : elle a retiré la version malveillante, fermé l’ensemble du marketplace, vérifié les journaux d’accès, confirmé que aucune autre extension n’avait été modifiée, renouvelé les clés, reconstruit le marketplace et éteint le serveur de l’attaquant, tout en contactant activement les utilisateurs affectés.
Mais la rapidité ne signifie pas l’absence de responsabilité. Le point clé de cet incident n’est pas que le code d’Anthropic a été modifié, mais plutôt que les droits de publication du Cursor Marketplace ont été violés. L’attaquant a pu envoyer des mises à jour en tant qu’éditeur officiel, ce qui indique que les processus de contrôle d’accès et de vérification du marketplace présentent un risque de faille. Les utilisateurs font généralement confiance aux mises à jour automatiques des extensions installées, mais ils vérifient rarement la signature ou l’origine. Plus compliqué encore, désinstaller une extension ne garantit pas que le danger sera éliminé : les scripts persistants se trouvent en dehors du dossier de l’extension, et même si l’extension est supprimée, le backdoor pourrait continuer à fonctionner.
Cet incident révèle également un problème plus profond : l’identité d’« éditeur officiel » du marché des extensions n’équivaut pas à la sécurité. Dès que l’endroit de publication est compromis, les notifications de mises à jour affichées par l’utilisateur ne diffèrent pas des mises à jour normales. Bien que fermer l’ensemble du marketplace soit une mesure prudente de la part de Cursor, cela montre également qu’il est impossible de distinguer rapidement quels éditeurs sont fiables et ceux qui ne le sont pas. Cette approche univoque prouve justement la faiblesse du mécanisme de vérification existant. La décision d’Anthropic d’ignorer 2.1.313 ressemble plutôt à une action de marquage de version ; elle ne résout pas le problème des marketplaces tierces qui ont été piratées, mais aide les utilisateurs à distinguer les numéros de version des canaux officiels. Cursor n’a jamais expliqué comment l’attaquant a obtenu les droits de publication, ce qui est crucial pour évaluer la cause de l’incident. Dans un contexte de nombreux attaques en chaîne sur le réseau d’approvisionnement, se contenter de marquer les versions et de fermer les plateformes ne suffit plus à restituer la confiance des utilisateurs.
Que disent les commentaires
Les discussions sur Hacker News se concentrent principalement sur plusieurs questions.
Premièrement, la sécurité des autres canaux. Certains commentaires indiquent que des versions malveillantes apparaissent également dans OpenVSX ou NPM. Un employé d’Anthropic a explicitement nié cela ; Phorion a déclaré que la version 2.1.313 sur VS Code/NPM avait également été retirée, mais que ce n’était pas nécessairement le même paquet malveillant. La position officielle limite le risque au Cursor Marketplace ; les utilisateurs ordinaires devraient se référer aux instructions officielles.
Deuxièmement, pourquoi le mécanisme de vérification a-t-il échoué ? Des commentaires bien notés soulignent que ce n’est pas un simple cas de typosquat ou d’attaque de paquet faux, mais plutôt une attaque de chaîne d’approvisionnement utilisant des identifiants de publiposte légitimes. Lorsque les attaquants peuvent envoyer des mises à jour aux extensions réelles, même les utilisateurs les plus méticuleux ont du mal à détecter de visu. La communauté est généralement d’avis que la fermeture complète du Cursor Marketplace est une mesure prudente, mais cela révèle également les faiblesses communes des marchés de extensions tierces en matière de gestion des droits de publication.
Troisièmement, sur les frontières de confiance liées aux mises à jour automatiques. De nombreux utilisateurs ont indiqué qu’auparavant ils permettaient sans condition les mises à jour automatiques des extensions IDE, car l’éditeur officiel était considéré comme fiable. Après cet incident, plus de personnes discutent de la question de savoir si les mises à jour automatiques devraient être désactivées, que les différences entre les versions devraient être vérifiées manuellement, ou que les fabricants devraient fournir une vérification de signature plus forte. D’autres commentaires mentionnent que des risques similaires ne se limitent pas au Cursor ; tout marché de extensions basé sur l’écosystème VS Code pourrait être confronté au même problème. La clé est la capacité à vérifier l’identité et l’intégrité à chaque étape du processus de publication.
Quatrièmement, la compassion et les inquiétudes envers les utilisateurs affectés. Certains commentaires soulignent que de nombreux développeurs conservent de grandes quantités de clés, de tokens API et de configurations d’environnement de production sur leurs ordinateurs de travail. Une fois des backdoors SSH insérés, l’impact peut dépasser celui d’une seule extension. D’autres rappellent que les développeurs ordinaires ne sont pas des experts en sécurité et qu’il est irréaliste de demander à chaque utilisateur de vérifier manuellement les mises à jour des extensions. Il est finalement nécessaire que les plateformes fournissent une garantie de publication plus fiable.
Cinquièmement, un appel à des systèmes de sécurité pour la chaîne d’approvisionnement. Certains utilisateurs mentionnent que des incidents similaires ont déjà eu lieu dans la chaîne d’approvisionnement logicielle, du npm au PyPI en passant par le marché d’extensions VS Code. Le problème fondamental est que les barrières de publication sont trop basses et les droits d’exécution trop élevés. Les solutions les plus demandées incluent : la mise en œuvre de la double authentification sur le côté du publisateur, la signature des paquets d’extension, l’audit des contenus sur le côté du marché, ainsi que le sandbox à droits minimaux lors de l’exécution. La capacité de ces suggestions à être adoptées par Cursor et d’autres marchés dépendra directement de la confiance que les développeurs auront à l’avenir envers les marchés de extensions tierces.
Trois choses que les utilisateurs ordinaires peuvent faire
-
Vérifiez l’origine et la version de l’installation. Ouvrez le panneau d’extensions de Cursor ou VS Code, et vérifiez le numéro de version de anthropic.claude-code. Si vous avez installé ou mis à jour à la version 2.1.312 / 2.1.313 via le Cursor Marketplace entre 02:27 et 13:35 PT du 29 octobre, cela doit être considéré comme un risque élevé. Si vous ne vous souvenez pas de l’origine, vérifiez si la case “publisher” de l’extension est correctement défini sur anthropic.claude-code, et consultez les journaux d’installation ou l’histoire du marketplace. Pour les autres extensions, il est également conseillé de vérifier s’il y a eu des mises à jour anormales après ce moment. Si vous n’êtes pas sûr, désactivez temporairement les mises à jour automatiques et installez manuellement les versions provenant des canaux officiels. Les utilisateurs de Cursor peuvent voir l’origine de l’installation dans les détails de l’extension ; si “Marketplace” est indiqué comme source propriété de Cursor, tous ceux qui ont été mis à jour pendant cette période doivent vérifier.
-
Vérifiez les résidus sur le système. Assurez-vous que le certificat Ed25519 commenté comme “svc-telemetry” se trouve dans ~/.ssh/authorized_keys ; vérifiez s’il existe des fichiers suspects tels que .smt, .smtk, smt.cmd dans ~/.config/ ; recherchez également des enregistrements de connexion à 134.209.82.225:8099. Sur macOS, vérifiez le dossier ~/Library/LaunchAgents ; sur Windows, les calendriers et les dossiers de démarrage ; sur Linux, crontab et les unités systèmed user, pour vérifier s’il y a des entrées suspectes. Si vous trouvez des LaunchAgents ou des tâches planifiées inconnues, même si leur nom semble normal, désactivez-les avant de poursuivre l’enquête. Après le nettoyage, il est conseillé de redémarrer pour voir si les processus ou les entrées de démarrage suspects réapparaissent.
-
Ne désinstallez pas simplement les extensions après le nettoyage. Comme les scripts persistants restent actifs en dehors des dossiers des extensions, il est conseillé aux utilisateurs affectés de changer les clés SSH, les identifiants cloud et les mots de passe importants, et de reconstruire le système si nécessaire. Pour les machines dont on ne sait pas si des scripts persistants ont été intégrés, il vaut mieux procéder à un traitement excessif plutôt que de laisser la chance jouer. Si du code de production a été exécuté sur cette machine ou si des clés sensibles ont été manipulées, isolez et redémarrez le système en priorité, plutôt que de simplement désinstaller les extensions pour continuer à utiliser l’ordinateur. Les utilisateurs d’entreprise devraient également vérifier les chaînes de production CI/CD, les machines de construction d’images Docker et les machines de développement partagées pour éviter une propagation horizontale. Enfin, il est conseillé d’inclure cet incident dans les exercices d’urgence de l’équipe, de définir une liste blanche pour l’installation des extensions et un processus de rotation des clés. Avant de redémarrer le système, exportez les codes de projet et les fichiers de configuration nécessaires, et évitez de récupérer des dossiers de réglages qui pourraient être infectés depuis une sauvegarde.
Conclusion
L’incident de backdoor Claude Code n’est pas simplement une installation malveillante d’une extension, mais un exemple typique de violation de la chaîne d’approvisionnement des marchés d’extensions tierces. Les canaux officiels et les répertoires de code d’Anthropic ne sont pas tombés, mais c’est le contrôle de l’identité des publishers par le Cursor Marketplace qui a été compromis. Avec 5000 utilisateurs, une période de 11 heures et l’activation immédiate des modules, ces chiffres montrent que dans un environnement avec des droits élevés comme les extensions IDE, une rupture de la chaîne de confiance des mises à jour automatiques peut rapidement avoir de graves conséquences.
À l’heure actuelle, les versions malveillantes ont été retirées du marché, le marketplace a été reconstruit et les serveurs des attaquants ont été déconnectés. Mais cela n’est que la fin de la réaction à l’incident, pas le point de départ de l’élimination des risques. Pour les utilisateurs ordinaires, la leçon la plus importante est que l’expansion du marché et les mises à jour automatiques ne sont pas naturellement fiables ; il est nécessaire de revenir aux preuves locales pour faire des jugements. Maintenir un scepticisme, conserver les archives, et renouveler régulièrement les clés sont les stratégies de protection les plus réalistes pour les développeurs dans l’écosystème actuel. Pour le secteur, cet incident montre une fois de plus que la sécurité de la chaîne d’approvisionnement ne peut pas dépendre uniquement de la rapidité de réponse des fabricants ; il est nécessaire de mettre en place des designs plus solides en matière de droits de publication, de vérification des signatures et d’isolation pendant le runtime. La prochaine fois, n’importe quelle extension populaire pourrait être compromise ; le véritable problème n’est pas de savoir à quelle vitesse les paquets malveillants peuvent fonctionner, mais si notre environnement de développement croit toujours par défaut à chaque mise à jour prétendue officielle. Aujourd’hui, où les assistants de programmation en IA s’insinuent de plus en plus dans l’environnement de développement, cette question de confiance mérite d’être réexaminée à plusieurs reprises.
Sources de référence
- Blog Phorion : Official Claude Code VSIX Compromise (2026-10-30)
- Annonce de sécurité de Cursor (2026-10-29)
- Discussion sur Hacker News : Clé backdoor dans l’extension Claude Code sur le marketplace de Cursor
- Réponse d’un employé d’Anthropic sur Hacker News
Signé : Yongliang