Cybersécurité

Détournement de prompt MCP : la faille qui fragilise les assistants IA connectés

Une vulnérabilité identifiée dans oatpp-mcp montre comment un attaquant peut perturber les échanges entre un assistant IA et ses outils connectés. Le problème ne vient pas du modèle de langage lui-même, mais de la gestion des sessions. Cette affaire rappelle que connecter une IA aux données et services de l’entreprise exige des garde-fous précis.

Schéma visuel d’un assistant IA connecté à des outils, avec une tentative d’injection dans une session MCP.
Illustration : Actu.ai

Les assistants d’intelligence artificielle ne se contentent plus de répondre à des questions : ils consultent des bases de données, interrogent des services en ligne, accèdent à des fichiers locaux et accompagnent des tâches de développement. Cette capacité d’action rend les outils bien plus utiles, mais elle étend aussi leur surface d’attaque. La vulnérabilité CVE-2025-6515, relevée dans l’implémentation oatpp-mcp, illustre un risque concret : détourner la conversation technique entre une IA et un outil auquel elle est reliée.

L’expression « détournement de prompt MCP » peut laisser croire qu’il suffirait de tromper un modèle de langage par une instruction habilement formulée. Le problème décrit ici est différent. Il concerne le canal de communication et la gestion des sessions utilisés autour de l’IA. Autrement dit, ce n’est pas nécessairement l’intelligence du modèle qui est prise en défaut, mais l’infrastructure qui lui fournit des données et lui renvoie des résultats.

MCP, le protocole qui relie une IA à son environnement

Un grand modèle de langage sait produire du texte à partir des informations contenues dans son contexte et de son entraînement. En revanche, il ne connaît pas spontanément l’état d’un dossier de l’entreprise, le contenu d’un dépôt de code ou le résultat d’une requête dans un logiciel métier. Pour obtenir ces informations, il doit être relié à des outils externes.

C’est l’objectif du Model Context Protocol, plus souvent désigné par son sigle MCP. Lancé par Anthropic, ce protocole propose une manière standardisée de faire dialoguer une application d’IA, souvent appelée client, avec des serveurs qui exposent des outils, des ressources ou des instructions. Dans un environnement de travail, une même interface conversationnelle peut ainsi demander à un service connecté de chercher un document, de lire une information ou d’exécuter une opération autorisée.

Cette architecture répond à une attente légitime des entreprises : éviter que chaque assistant et chaque logiciel utilisent leur propre connecteur. Mais la standardisation ne supprime pas le besoin de sécurité. Elle déplace une partie de la confiance vers les serveurs MCP, les bibliothèques qui les implémentent, les mécanismes d’authentification et les applications clientes qui interprètent les réponses.

ÉlémentRôle dans une connexion MCPRisque si sa sécurité est insuffisante
Modèle ou assistant IAFormule une demande et exploite le résultat reçuPeut être influencé par une réponse falsifiée ou trompeuse
Client MCPAssure l’échange entre l’assistant et le serveurPeut accepter un événement qui ne correspond pas à la session attendue
Serveur MCPExpose des données, des outils ou des servicesPeut confondre un échange légitime avec une requête malveillante
Identifiant de sessionAssocie les messages à une connexion donnéeS’il est prévisible, un tiers peut tenter d’usurper ou de perturber la session

Où se situe la faille CVE-2025-6515 ?

Le problème signalé dans oatpp-mcp se situe dans la couche de transport des échanges. Cette implémentation en C++ relie différents programmes au standard MCP et s’appuie notamment sur les événements envoyés par le serveur, appelés SSE, pour acheminer des informations vers le client.

Dans une session normale, un utilisateur se connecte et le serveur attribue un identifiant qui doit permettre de reconnaître cette session par la suite. Cet identifiant est un élément de sécurité : il ne doit pas être devinable, ni réutilisable par erreur, ni facilement confondu avec celui d’une autre connexion.

Or le mécanisme pointé dans CVE-2025-6515 utiliserait une adresse mémoire comme identifiant de session. Le choix est problématique. Une adresse mémoire n’est pas conçue comme un jeton secret : les ordinateurs peuvent réemployer des zones de mémoire à mesure que des objets sont créés puis supprimés. Un identifiant construit de cette façon risque donc de devenir prévisible ou de réapparaître.

Les spécialistes à l’origine de l’alerte décrivent un scénario dans lequel un attaquant multiplie les ouvertures et fermetures de sessions afin de repérer des identifiants valides ou anticipables. Il peut ensuite envoyer des requêtes destinées à être associées à une session réelle. Le serveur ne dispose alors pas toujours des éléments nécessaires pour distinguer le véritable utilisateur d’un acteur malveillant.

Le point décisif tient au résultat de cette confusion : la réponse nuisible est renvoyée dans l’environnement du client légitime. Si l’application cliente traite ce message comme une réponse digne de confiance, elle peut l’afficher à l’utilisateur ou le transmettre à l’assistant. C’est ce chaînage entre une faiblesse d’infrastructure et un système d’IA qui explique l’appellation de détournement de prompt.

Comment une réponse falsifiée peut influencer une IA

Dans l’exemple évoqué par les chercheurs, un programmeur demande à son assistant IA une bibliothèque Python permettant de traiter des images. Si un tiers parvient à injecter une réponse dans le bon flux de communication, l’assistant peut recevoir une recommandation frauduleuse à la place d’une réponse attendue.

Le risque est particulièrement sérieux dans le développement logiciel. Les assistants de code sont de plus en plus sollicités pour recommander des dépendances, générer des commandes ou expliquer la configuration d’un projet. Une bibliothèque malveillante ou un paquet contrefait introduit dans cette chaîne peut affecter bien plus qu’un seul poste de travail. C’est le principe d’une atteinte à la chaîne d’approvisionnement logicielle : compromettre un maillon réutilisé par de nombreux projets ou utilisateurs.

Il faut toutefois éviter tout raccourci. Une réponse injectée ne signifie pas automatiquement qu’un code malveillant sera exécuté. Entre une recommandation produite par un assistant et l’installation effective d’un composant, un développeur, une politique interne ou un outil de contrôle peut encore bloquer l’opération. Mais précisément, l’objectif de l’attaque est d’exploiter la confiance accordée à une interface IA intégrée au travail quotidien.

Assistant IA connecté : promesse fonctionnelle et exigences de sécurité

Ce que permet MCP

  • Relier un assistant à des données locales et à des services en ligne.
  • Standardiser les échanges entre une application IA et des outils externes.
  • Automatiser des recherches, consultations et tâches autorisées.
  • Réduire les intégrations spécifiques entre chaque assistant et chaque service.

Ce qu’il faut protéger

  • Des identifiants de session uniques, aléatoires et difficiles à deviner.
  • La correspondance entre chaque événement reçu et la session active.
  • Les droits accordés aux outils et aux données exposés à l’assistant.
  • La validation humaine des opérations à fort impact.
  • Les dépendances logicielles suggérées par un assistant de code.

Pourquoi le client est aussi important que le serveur

La protection ne repose pas uniquement sur le serveur MCP. Une application cliente robuste doit être capable de vérifier que chaque événement reçu appartient bien à la session active et correspond au type de message attendu. Si elle accepte indistinctement plusieurs réponses, ou si elle se contente d’un identifiant trop simple, elle augmente les possibilités de confusion.

Les identifiants d’événements incrémentaux, par exemple une suite de numéros faciles à anticiper, posent un risque lorsqu’un attaquant peut tenter un grand nombre de valeurs. Cette famille de tentatives répétées est parfois qualifiée de « spraying ». Le remède de base est connu : les identifiants qui protègent une session doivent être produits par un générateur aléatoire robuste, adapté à un usage cryptographique.

Dans le cas d’un assistant IA, cette validation doit aller au-delà du seul identifiant. Le client a intérêt à contrôler, pour chaque message :

  • sa provenance et son association à la connexion concernée ;
  • son type et son format, afin de rejeter les événements inattendus ;
  • les droits dont dispose le serveur ou l’outil qui formule la réponse ;
  • l’action éventuelle qui découlera de la réponse, notamment lorsqu’elle porte sur un fichier, du code ou une donnée sensible.

Les mesures concrètes pour les équipes techniques

La première priorité est de vérifier si l’organisation utilise oatpp-mcp ou une architecture présentant des mécanismes comparables. Cet inventaire doit couvrir les projets de développement, les assistants internes, les outils de test et les connecteurs installés localement. L’adoption rapide de l’IA peut favoriser l’apparition de services non recensés, configurés par des équipes métiers ou des développeurs pour répondre à un besoin ponctuel.

Ensuite, les équipes doivent appliquer les correctifs de sécurité disponibles et maintenir les composants à jour. La présence d’un identifiant CVE permet justement de suivre une vulnérabilité identifiée publiquement et de l’intégrer aux processus habituels de gestion des risques.

La conception des sessions mérite un audit spécifique. Un serveur ne doit pas dériver ses jetons de session d’un élément prévisible tel qu’une adresse mémoire. Il doit générer des valeurs aléatoires robustes, uniques et difficiles à deviner. Les sessions doivent aussi être correctement isolées, expirées lorsque cela est nécessaire et invalidées à la déconnexion.

Enfin, les entreprises ont intérêt à appliquer une logique de zero-trust, ou confiance minimale. Ce principe consiste à ne pas considérer qu’un message est fiable du seul fait qu’il circule sur un réseau interne ou qu’il provient apparemment d’un service habituel. Chaque demande sensible doit être authentifiée, autorisée et vérifiée dans son contexte.

Mesure de protectionCe qu’elle apporteÉquipe principalement concernée
Mise à jour des composants vulnérablesRéduit l’exposition aux failles connuesDéveloppement, exploitation, sécurité
Jetons de session aléatoires robustesEmpêche la prédiction et la réutilisation facile des sessionsDéveloppement serveur
Validation stricte des événements côté clientÉcarte les messages dont l’identifiant ou le type est inattenduDéveloppement client
Droits limités pour les outils MCPRéduit l’impact si un échange est détournéSécurité, administrateurs
Contrôle humain des opérations sensiblesÉvite qu’une recommandation IA mène directement à une action risquéeMétiers, développement, sécurité

Un enjeu de gouvernance, pas seulement un bug technique

Les responsables de la sécurité des systèmes d’information et les directions techniques doivent traiter les connecteurs IA comme n’importe quelle autre brique exposée du système d’information. Cela implique d’identifier les données auxquelles un assistant peut accéder, les outils qu’il peut appeler et les conséquences d’une réponse erronée ou hostile.

Un assistant limité à la consultation de documents publics ne présente pas le même niveau de risque qu’un agent autorisé à lire du code privé, à modifier des tickets, à déclencher un déploiement ou à interroger une base de données. Le principe du moindre privilège est donc particulièrement pertinent : chaque outil connecté ne devrait disposer que des permissions strictement nécessaires à sa mission.

Les journaux d’activité sont également essentiels. Ils permettent de repérer des comportements inhabituels, comme des sessions anormalement nombreuses, des réponses incohérentes ou des demandes qui ne correspondent pas aux usages prévus. Pour être utiles, ces traces doivent être associées à une procédure claire : qui est alerté, quelles connexions sont suspendues et comment les équipes vérifient-elles l’intégrité des réponses échangées ?

Ce qu’il faut surveiller à mesure que MCP se diffuse

L’affaire CVE-2025-6515 montre que l’essor des assistants connectés crée une nouvelle catégorie de responsabilités. Les organisations ne doivent pas seulement évaluer la qualité des réponses d’un modèle de langage. Elles doivent aussi examiner avec la même rigueur les bibliothèques, serveurs, identifiants, autorisations et flux de données qui rendent ces réponses possibles.

À mesure que MCP est adopté, la qualité de ses implémentations deviendra aussi importante que les capacités des modèles eux-mêmes. Les projets qui privilégient une gestion robuste des sessions, des contrôles explicites côté client et des permissions limitées offriront un environnement plus résilient. Pour les entreprises, la bonne question n’est donc pas seulement « que peut faire notre assistant IA ? », mais aussi « à quelles données et à quels outils avons-nous choisi de le relier, et sous quelles garanties ? ».

Questions fréquentes

Qu’est-ce que le détournement de prompt MCP ?

Le détournement de prompt MCP désigne ici la possibilité de perturber les échanges entre un assistant IA et un outil connecté par le protocole Model Context Protocol. Dans le cas de CVE-2025-6515, le problème vient d’une gestion de session défaillante dans oatpp-mcp. Un tiers peut tenter d’injecter une réponse fausse dans le flux d’un utilisateur légitime.

Le protocole MCP est-il dangereux par nature ?

Non. MCP est un protocole conçu pour relier une IA à des données et à des outils externes. La vulnérabilité évoquée concerne une implémentation particulière, oatpp-mcp, et sa manière de produire des identifiants de session. Comme pour tout protocole, le niveau de sécurité dépend aussi de la qualité du code, de la configuration et des contrôles appliqués par les clients et les serveurs.

Que signifie CVE-2025-6515 ?

CVE-2025-6515 est l’identifiant public attribué à la vulnérabilité décrite dans oatpp-mcp. Les identifiants CVE permettent aux équipes techniques et aux responsables de sécurité de suivre une faille connue, de vérifier si leurs logiciels sont concernés et d’intégrer les correctifs nécessaires à leur processus de gestion des vulnérabilités.

Comment protéger une entreprise utilisant des assistants IA connectés ?

Il faut commencer par recenser les serveurs MCP, bibliothèques et assistants utilisés dans l’organisation. Les composants concernés doivent être mis à jour. Les sessions doivent reposer sur des jetons aléatoires robustes, et les clients doivent rejeter les événements inattendus. Enfin, limiter les permissions des outils et conserver une validation humaine pour les actions sensibles réduit les conséquences d’un détournement.

Une réponse falsifiée d’une IA peut-elle installer automatiquement un logiciel malveillant ?

Pas nécessairement. Une réponse falsifiée peut pousser l’assistant à recommander une dépendance ou une instruction dangereuse, mais son exécution dépend de la configuration de l’outil et des contrôles en place. Le risque augmente si un assistant dispose de droits étendus ou si ses recommandations sont appliquées sans vérification. C’est pourquoi les opérations sensibles doivent rester contrôlées.

Sources

Références consultées pour la rédaction de cet article. Les adresses sont indiquées à titre informatif et ne sont pas des liens.

  1. CVE Program, fiche CVE-2025-6515www.cve.org/CVERecord?id=CVE-2025-6515
  2. Anthropic, présentation du Model Context Protocolwww.anthropic.com/news/model-context-protocol
  3. JFrog, analyses et recherches en sécuritéjfrog.com/blog