Le blogue techno
Chroniques de l’ère numérique
Chroniques de l’ère numérique : expertise et veille en cybersécurité
Precicom / Blogue Techno / CVE-2026-57860 : Comment le chargement automatique des MCP permet l’accès initial et la persistance.
Recherche & expertise
CVE-2026-57860 : Comment le chargement automatique des MCP permet l’accès initial et la persistance.
Temps de lecture :
7 minute(s)
-
21 septembre 2026
Contexte
Au cours des derniers mois, les assistants de programmation par IA se sont révélés utiles à bien des égards, non seulement pour les tâches de programmation, mais aussi pour le piratage informatique. Jumelé à un modèle de pointe, un environnement d’agent de programmation peut analyser du code, repérer des vulnérabilités et rédiger de toutes pièces un exploit complet en quelques heures.
Les deux principaux agents de programmation à code source ouvert sont OpenCode et ForgeCode. Tous deux fonctionnent dans un terminal, se connectent à l’API du grand modèle de langage (LLM) de votre choix et peuvent accéder à des serveurs MCP locaux ou distants pour bénéficier d’un vaste éventail d’outils.
Cette nouvelle famille de logiciels introduit également une nouvelle famille de surfaces d’attaque.
La surface d’attaque : chargement automatique de configurations non fiables
Un même schéma se retrouve dans pratiquement tous les agents de programmation de l’industrie : les fichiers de configuration, les MCP, les définitions MCP, les modules d’extension et les ressources semblables sont chargés et exécutés automatiquement au lancement, avec peu ou pas de vérification, de mise en bac à sable ou de consentement de l’utilisateur.
Le chargement automatique est une fonctionnalité légitime et utile. Le problème est qu’aucun de ces outils ne distingue par défaut une configuration provenant d’une source fiable d’une configuration qui ne l’est pas. Tout code qui se retrouve au bon emplacement peut être exécuté automatiquement.
Les scénarios d’attaque ainsi rendus possibles se divisent en deux catégories distinctes :
- Accès initial : un utilisateur clone un dépôt externe ou non fiable; une configuration malveillante s’exécute silencieusement au premier lancement.
- Persistance : un attaquant disposant d’un accès en écriture à un dépôt fiable et établi y insère une charge utile qui s’exécute chaque fois qu’un développeur ouvre le projet, en se fondant dans le déroulement normal du travail.
ForgeCode : CVE-2026-57860
Après avoir défini conceptuellement cette classe de vulnérabilités, j’ai audité la gestion des MCP par ForgeCode et confirmé le même schéma : les fichiers .mcp.json sont analysés et les configurations de serveurs MCP qu’ils définissent sont exécutées automatiquement au démarrage, sans invite ni vérification de confiance.
Démonstration de faisabilité : [Bogues] : exécution de code arbitraire lors de l’exécution de Forge dans un dépôt non fiable · Ticket no 3022 · tailcallhq/forgecode
L’équipe de ForgeCode a réagi rapidement. Le problème a été corrigé et s’est vu attribuer CVE-2026-57860. La correction consiste en une boîte de dialogue de confiance qui présente à l’utilisateur tout fichier .mcp.json préconfiguré avant son exécution et exige une confirmation explicite.
OpenCode : exécution automatique non corrigée des modules d’extension
Un problème parallèle existe dans le système de modules d’extension d’OpenCode. Dans OpenCode, ces modules peuvent avoir une portée globale ou propre à un projet et servent à intégrer des fonctionnalités externes ou à modifier le comportement par défaut. La même hypothèse dangereuse s’applique : les fichiers de modules d’extension sont considérés comme fiables et exécutés aveuglément, peu importe leur provenance.
Le problème a été signalé à l’équipe d’OpenCode. Celle-ci l’a classé comme un « comportement connu sans danger » (« unharmful known behavior ») et n’a publié aucun correctif. Il demeure non corrigé.
Cas antérieurs : Claude Code
Cette classe de vulnérabilités n’est pas nouvelle. Deux CVE antérieures documentent le même schéma dans Claude Code :
Dans les deux cas, le code s’exécutait avant que la boîte de dialogue de confiance soit présentée à l’utilisateur. Autrement dit, l’invite censée protéger l’utilisateur apparaissait après que le dommage avait déjà été causé. Les deux vulnérabilités ont été corrigées.
La correction est simple
Une boîte de dialogue de confirmation. C’est tout. Il suffit d’aviser l’utilisateur lorsqu’un projet comprend des fichiers MCP préconfigurés ou des fichiers de configuration de modules d’extension ou d’agents, puis de lui demander s’il leur fait confiance avant toute exécution. ForgeCode le fait. Claude Code le fait. OpenCode ne le fait pas.
Les outils de cette catégorie sont de plus en plus utilisés par des personnes qui ne comprennent pas nécessairement toutes les implications de l’« exécution de code au lancement ». La surface d’attaque est réelle, son exploitation est simple et une seule invite de confirmation sépare un outil de développement utile d’un vecteur d’accès initial fiable.
Ingénieur en sécurité possédant une expérience concrète en opérations SOC, notamment en détection des menaces, en réponse aux incidents et en défense des infrastructures d’entreprise. Il mène activement des recherches en sécurité dans plusieurs domaines.