Une nouvelle attaque de validation de principe montre que des serveurs malveillants de Model Context Protocol peuvent injecter du JavaScript dans le navigateur de Cursor et potentiellement exploiter les privilèges de l’EDI pour effectuer des tâches système.
Les agents d’IA et les copilotes de codage bouleversent la manière et le contenu du code des développeurs. Mais ils étendent également rapidement la surface d’attaque des machines des développeurs.
Dernier exemple en date : des chercheurs en sécurité ont montré comment un serveur MCP (Model Context Protocol) malveillant peut injecter du code malveillant dans la fonctionnalité de navigateur intégrée de Cursor, un éditeur de code populaire alimenté par l’IA.
Développé à l’origine par Anthropic pour faciliter la communication entre les grands modèles de langage (LLM) et les sources de données ou applications externes afin d’améliorer le contexte du flux de travail, MCP est devenu un composant clé pour le développement d’agents d’IA qui automatisent les tâches en tirant parti d’outils externes.
Le protocole utilise une architecture client-serveur, dans laquelle les applications exposent les fonctionnalités aux LLM via un serveur MCP et les agents ou applications IA se connectent à ces services via un client MCP. Les environnements de développement intégrés (IDE) tels que Visual Studio Code de Microsoft – et ceux basés sur celui-ci, comme Cursor et Windsurf – prennent en charge de manière native l’intégration avec les serveurs MCP.
Pour améliorer la sécurité, la plupart des fournisseurs d’IDE gèrent des référentiels avec des serveurs MCP approuvés, mais les utilisateurs d’IDE peuvent également déployer des serveurs personnalisés manuellement. De tels serveurs peuvent être trouvés partout sur Internet, y compris sur GitHub. Plus tôt cette année, les chercheurs ont découvert des centaines de serveurs MCP dans des référentiels publics GitHub présentant des erreurs de configuration dangereuses, notamment une exposition par défaut à des réseaux non fiables et à des chemins d’injection de commandes du système d’exploitation.
Attaquer le curseur et d’autres IDE basés sur VS Code
VS Code, et par extension Cursor et d’autres forks de VS Code, est construit sur Electron, un framework utilisé pour développer des applications multiplateformes avec Node.js et le moteur de navigateur Blink de Chrome. Pour cette raison, ces applications utilisent un interpréteur JavaScript. En tant qu’IDE, ils disposent également d’un accès au système de fichiers et d’autorisations élevées pour effectuer des tâches.
Les chercheurs de Knostic ont récemment publié une attaque de validation de principe contre Cursor, mise en œuvre via une extension malveillante qui injectait du JavaScript malveillant dans l’EDI en cours d’exécution pour exécuter des actions et manipuler son interface utilisateur. Des extensions malveillantes ont également été trouvées dans VSCode Marketplace et dans le registre OpenVSX, que Cursor utilise également, notamment un ver auto-propagatif qui récupère les informations d’identification des machines des développeurs.
L’attaque récemment dévoilée de Knostic est similaire dans son concept, mais lancée via un serveur MCP malveillant, elle étend la surface d’attaque au-delà des extensions.
« Un serveur MCP doit être traité exactement comme les extensions VS Code en termes de sécurité », a déclaré Munis. En effet, les serveurs MCP sont essentiellement téléchargés pour s’exécuter sur votre ordinateur et héritent des autorisations de l’EDI que vous utilisez, a-t-il expliqué.
Dans son attaque de preuve de concept, Munis montre qu’un serveur MCP peut injecter du code JavaScript dans le navigateur intégré que Cursor a récemment ajouté pour permettre aux développeurs de tester visuellement les modifications apportées au code de leur application et pour permettre à l’agent IA de Cursor d’effectuer automatiquement les tâches nécessitant une navigation. Grâce à cette technique, Munis a remplacé la page activement affichée du navigateur par une invite de connexion, comme dans un scénario de phishing, mais sans que l’URL ne change jamais — en d’autres termes, les modifications du code injecté se produisent à la volée.
Bien entendu, l’impact d’une telle attaque dépend de ce que fait la victime dans le navigateur. Les développeurs peuvent afficher des données sensibles de l’application Web sur laquelle ils travaillent ou être connectés à un service. Il est à noter que le navigateur interne enregistre des cookies d’authentification pour la session et que ceux-ci pourraient également être ciblés.
L’attaque a été développée pour prouver le succès de l’injection de code JavaScript via un serveur MCP, mais tout comme pour l’attaque par extension, elle pourrait être étendue pour effectuer d’autres actions malveillantes au sein de l’IDE Cursor lui-même.
Défenses
Les organisations doivent examiner et contrôler, à la fois par le biais de politiques et de contrôles d’accès, les extensions IDE et les serveurs MCP utilisés par leurs développeurs. Ils devraient le faire tout comme ils devraient vérifier les dépendances des applications à partir de registres de packages tels que npm ou PyPI pour éviter la compromission des machines des développeurs ou l’héritage de vulnérabilités dans leur code.
Les attaquants utilisent de plus en plus les extensions VS Code comme vecteur d’attaque pour cibler les développeurs et ce n’est qu’une question de temps avant qu’ils commencent à abuser plus largement des serveurs MCP.
« Essayez de trouver le dépôt GitHub du projet et examinez le code », a conseillé l’équipe Knostic. « Il s’agit d’un programme que vous installez sur votre ordinateur et qui peut tout faire. En cas de doute sur sa crédibilité, NE L’UTILISEZ PAS. »
L’utilisation de modes d’exécution automatique, dans lesquels les agents sont autorisés à effectuer des tâches automatiquement dans l’EDI sans qu’un humain approuve les étapes, également appelé mode YOLO, doit également être évitée.
« N’activez jamais aveuglément quoi que ce soit, en particulier la fonctionnalité MCP », a prévenu l’équipe. « Ne présumez pas que tout ce que votre agent IA a généré correspond à vos attentes. Lisez le code avant d’effectuer des actions dans le navigateur intégré. «
Dans sa documentation MCP, Cursor lui-même avertit les développeurs de :
- Vérifiez la source d’un serveur MCP et installez-le uniquement à partir de développeurs et de référentiels de confiance
- Vérifiez à quelles données et API le serveur est censé accéder
- Utiliser des clés API avec des autorisations restreintes
- Auditer le code du serveur pour les intégrations critiques



