Un détournement rapide met en danger les flux de travail d’IA basés sur MCP

Lucas Morel

Une version IA du détournement de session peut amener les attaquants à injecter des invites malveillantes dans les communications MCP légitimes.

Le protocole de contexte de modèle (MCP) offre aux équipes informatiques un moyen standardisé de connecter des modèles de langage étendus (LLM) à des outils et des sources de données lors du développement de flux de travail basés sur l’IA.

Mais les chercheurs en sécurité préviennent que les flux de travail d’IA basés sur MCP peuvent être vulnérables aux attaques malveillantes par injection rapide si la gestion des identifiants de session était mise en œuvre de manière non sécurisée sur les serveurs MCP facilitant la connexion.

« Bien que le détournement de session soit une vulnérabilité bien connue dans les applications Web, le détournement d’invite est une nouvelle version de cette vulnérabilité et un vecteur d’attaque dangereux activé par les modèles d’interaction de MCP, comme on le voit dans les serveurs MCP qui génèrent des identifiants de session prévisibles », ont écrit les chercheurs de la société de sécurité JFrog dans un nouveau rapport.

Un exemple de la façon dont ce problème peut affecter les flux de travail et les agents d’IA est une vulnérabilité récente trouvée par JFrog dans oatpp-mcpl’implémentation MCP pour Oat++ (oatpp), un framework populaire pour développer des applications Web en C++. Traquée sous le numéro CVE-2025-6515, la faille vient du fait que oatpp-mcp génère des ID de session devinables à utiliser dans sa communication avec les clients MCP, un problème que d’autres serveurs MCP pourraient également rencontrer.

Comment les serveurs MCP sécurisent la communication

Le Model Context Protocol a été développé par la société d’IA Anthropic pour permettre la communication entre les LLM et des sources de données ou des applications externes afin d’améliorer le contexte du flux de travail. MCP a été largement adopté et constitue un élément clé dans le développement d’agents d’IA qui automatisent les tâches en tirant parti d’outils externes.

MCP utilise un modèle client-serveur et prend en charge plusieurs méthodes de communication. Une application ou une source de données qui souhaite exposer son contenu ou ses fonctionnalités à un LLM le fait sur son propre serveur MCP, et l’agent AI, l’application de chatbot AI ou l’IDE qui est l’interface pour interagir avec un LLM via des invites peut extraire des données contextuelles des serveurs MCP via une implémentation de client MCP.

Disons qu’un développeur travaillant dans un IDE sur lequel son modèle préféré est connecté demande au modèle de trouver le meilleur package Python pour une tâche particulière. Le modèle peut utiliser le client MCP de l’EDI pour se connecter à un serveur MCP conçu pour rechercher l’index Python (PyPI) et renvoyer un nom de package pour cette requête.

Les serveurs et clients MCP prennent en charge plusieurs types de communication, notamment HTTP avec les événements envoyés par le serveur (SSE). Dans ce mécanisme de transport, utilisé par oatpp-mcple client initie une connexion au serveur avec une requête GET et le serveur génère et répond avec un ID de session. Le client peut ensuite utiliser cet ID de session pour envoyer des requêtes POST aux points de terminaison exposés par le serveur MCP et le serveur renverra les résultats au format JSON.

Les identifiants de session doivent être uniques et sécurisés

Les identifiants de session permettent au serveur MCP de différencier les connexions simultanées de différents clients. C’est pourquoi il est important qu’ils soient uniques et générés de manière cryptographiquement sécurisée, ce qui signifie qu’ils ne peuvent pas être devinés. Il s’agit d’une exigence de la nouvelle spécification HTTP Streamable du protocole MCP, mais ce n’était pas une exigence de la spécification de transport SSE d’origine, ce qui signifie que de nombreux serveurs MCP n’ont peut-être pas implémenté l’unicité de l’ID de session.

« Étant donné que l’ID de session détermine où le serveur envoie ses réponses, sa fuite ouvre la porte à des abus », préviennent les chercheurs de JFrog. « Un attaquant qui obtient un ID de session valide peut envoyer des requêtes malveillantes au serveur MCP. Ces requêtes sont traitées par le serveur comme si elles provenaient du client légitime, et les réponses sont renvoyées à la session client d’origine. « 

Pour oatpp-mcples chercheurs de JFrog ont démontré comment les attaquants pouvaient ouvrir un grand nombre de connexions au serveur MCP pour générer des identifiants de session, puis fermer les connexions afin que ces identifiants de session puissent être libérés et réaffectés à des clients légitimes. Les attaquants peuvent ensuite réutiliser ces identifiants pour inciter le serveur à générer des réponses malveillantes à ces clients.

« MCP prend en charge les demandes structurées, y compris les invites », ont noté les chercheurs. « Par exemple, un client peut demander une invite au serveur, mais pendant ce temps, un attaquant peut injecter sa propre invite malveillante. Le client recevra alors et potentiellement agira sur la réponse empoisonnée de l’attaquant au lieu de sa propre réponse légitime. « 

Atténuations

Premièrement, les développeurs de serveurs MCP doivent revoir leurs implémentations et utiliser des générateurs de nombres aléatoires cryptographiquement sécurisés avec au moins 128 bits d’entropie afin de générer des identifiants de session uniques qui ne sont pas réutilisés.

Si les serveurs ne le font pas, le côté client MCP peut utiliser des ID d’événement pour ses demandes afin d’atténuer ce problème en acceptant uniquement les réponses avec le même ID d’événement. Comme pour les sessions, ces ID d’événement doivent être imprévisibles. Malheureusement, les chercheurs ont découvert que de nombreux clients MCP utilisent des ID d’événement incrémentiels qui peuvent être forcés par force brute.

« À mesure que les modèles d’IA sont de plus en plus intégrés aux flux de travail via des protocoles tels que MCP, ils héritent de nouveaux risques. Cet exploit au niveau de la session montre comment le modèle lui-même reste intact alors que l’écosystème qui l’entoure est compromis », ont déclaré les chercheurs.