Skip to main content
Blog
Blog News

Sécurité des API d'IA : quand une infrastructure partagée renvoie les données d'un autre utilisateur

Les caches partagés, les pools de connexions et les routeurs compliquent la sécurité des API d'IA. Voici comment se produisent les fuites entre clients et ce qu'il faut surveiller dans le navigateur.

Jun 05, 2026 Mis à jour le Aug 05, 2026 12 min read
Illustration d'une requête à l'API Claude et d'une réponse renvoyée appartenant à un autre utilisateur, marquée « la réponse ne correspond pas à la requête », entre les logos d'Anthropic et de cside
Table des matières

En bref : fuite de réponses d'API IA entre locataires

  • Pas un canal privé : Traiter la réponse d'une API LLM comme un canal privé entre vous et le modèle est l'erreur. Ce sont des données qui reviennent d'une pile massive partagée de caches, routeurs et pools, et un mauvais jour la sortie d'un locataire finit dans la session d'un autre.
  • Panne d'état partagé : L'incident de l'API Claude du 2026-06-05 a touché Opus 4.5 à 4.8 et Sonnet 4.6 pendant des heures. Il correspond à l'échec redis-py de 2023 chez OpenAI qui a exposé des données de facturation limitées pour 1,2 % des abonnés ChatGPT Plus, et cside surveille la couche navigateur où se croisent sortie IA, scripts tiers et sessions authentifiées.
  • Assainir et valider : Si vous affichez de la sortie modèle dans le navigateur, assainissez-la avant qu'elle ne touche le DOM et validez la forme sur chaque réponse. Si vous manipulez des données réglementées, choisissez des conditions de rétention zéro et journalisez les métadonnées requête-réponse pour distinguer une erreur modèle d'une fuite entre locataires.

Peu de temps ? Découvrez la détection d'agents IA de cside. Elle couvre tout ce qui suit en un seul déploiement.

Pendant quelques heures dans l'après-midi du 2026-06-05, l'API Claude semble avoir renvoyé des réponses qui n'appartenaient pas à l'utilisateur qui les avait demandées. Vous envoyez une requête et vous récupérez une sortie qui ressemble à la réponse au prompt de quelqu'un d'autre.

La page d'état d'Anthropic a enregistré l'événement comme « erreurs élevées sur de nombreux modèles Claude », touchant Opus 4.5 à 4.8 et Sonnet 4.6. Elle ne décrit pas, à ce jour, une fuite de données. La lecture d'un croisement de données entre utilisateurs provient de captures d'écran qui circulent et de témoignages directs, il faut donc la considérer comme une interprétation précoce, pas comme une violation confirmée.

La classe de défaillance compte plus que le fait de savoir si un fournisseur a eu un mauvais après-midi. Quand ce genre de chose arrive, cela remonte presque toujours à un état mutable partagé sous charge, un risque que porte aujourd'hui tout fournisseur d'IA en pleine montée en charge.

Ce qui semble s'être passé

D'après la page d'état d'Anthropic, l'incident s'est étalé sur l'après-midi du 2026-06-05 : l'investigation a été ouverte vers 15:19 UTC, le problème a été identifié à 15:43 UTC, et il a été marqué comme résolu à 18:28 UTC. Les modèles touchés étaient Claude Opus 4.5, 4.6, 4.7 et 4.8, ainsi que Sonnet 4.6. L'étiquette officielle était « erreurs élevées », la catégorie générique que les fournisseurs utilisent pour tout, des délais d'attente aux réponses mal formées.

Les signalements qui ont attiré l'attention décrivent quelque chose de plus précis. Des utilisateurs ont déclaré que certains appels à l'API renvoyaient un contenu sans aucun rapport avec leur propre prompt et, dans au moins un cas très partagé, la tâche d'une personne est apparue dans la réponse d'un utilisateur totalement étranger. Plusieurs personnes ont dit avoir reçu ce qui ressemblait à la sortie d'inférence d'un autre client, et l'avoir vérifié soigneusement avant de conclure qu'il s'agissait d'une erreur en amont et non d'un bug de leur côté.

Deux choses sont vraies en même temps. Anthropic n'a pas confirmé d'exposition de données entre utilisateurs, et les preuves publiques sont cohérentes avec elle. Une lecture responsable tient les deux : cela ressemble à une fuite de réponses entre clients (cross-tenant), et ce n'est pas encore officiellement confirmé comme tel. Je ne reproduis pas ici les captures divulguées, car elles contiennent le prompt et la sortie d'un autre client, c'est-à-dire exactement les données qui ne devraient pas circuler davantage.

La classe de défaillance : état mutable partagé sous charge

La fuite entre clients survient lorsque les données d'un client apparaissent dans la session d'un autre. C'est l'un des bugs les plus anciens et les plus dangereux des systèmes multi-locataires, et il vient rarement d'une violation spectaculaire. Il vient généralement d'un morceau d'état partagé et mutable qui devait être isolé par requête et qui, dans les mauvaises conditions, ne l'a pas été.

Une API d'IA moderne s'exécute comme une pile de couches partagées, pas un programme unique répondant à une requête à la fois : répartiteurs de charge, routeurs de requêtes, passerelles, files d'attente, caches en mémoire et pools de connexions, tous au service de chaque client en même temps pour maintenir une faible latence et un faible coût. Chacune de ces couches conserve un état. Chacune est un endroit où une requête peut récupérer la mauvaise réponse si une clé de cache entre en collision, si une connexion est réutilisée après avoir dû être abandonnée, ou si une requête annulée laisse derrière elle un objet périmé.

Le symptôme est presque toujours le même : vous demandez vos données et vous recevez celles de quelqu'un d'autre. La cause est presque toujours banale : une petite erreur dans la façon dont un objet partagé est réutilisé, déclenchée par la charge ou par un cas limite comme une requête annulée ou expirée.

Nous avons déjà vu ce schéma exact

Le précédent le plus clair est OpenAI, en mars 2023. Le 2023-03-20, une modification de ses serveurs a provoqué un pic de requêtes Redis annulées, qui a déclenché un bug dans la bibliothèque cliente redis-py. Pendant une fenêtre ce jour-là, certains utilisateurs de ChatGPT pouvaient voir les titres de conversation d'autres utilisateurs actifs et, dans certains cas, le premier message d'une conversation nouvellement créée.

Le même incident a exposé des données de facturation limitées. OpenAI a notifié environ 1,2 % des abonnés ChatGPT Plus qu'un autre utilisateur avait pu voir leurs nom et prénom, adresse de facturation, type de carte, date d'expiration et les quatre derniers chiffres de leur carte. Les numéros de carte complets n'ont jamais été exposés. Comme Help Net Security l'a rapporté à l'époque, et comme OpenAI l'a confirmé dans son propre post-mortem, la cause racine était une couche partagée de cache et de connexions qui renvoyait des données au mauvais client après des requêtes annulées.

C'est la même classe de défaillance que le symptôme décrit dans les signalements concernant Claude : une couche partagée et mutable qui remet les données d'un client à un autre sous charge. Entreprise différente, bibliothèque différente, même schéma.

Pourquoi la montée en charge rend cela plus probable, pas moins

Voici la partie structurelle inconfortable. Les fournisseurs d'IA ajoutent de la capacité plus vite que presque toute infrastructure de l'histoire de l'informatique. La demande dépasse le matériel, alors les équipes continuent d'empiler des couches pour tenir : plus de cache pour réduire le coût des tokens, plus de routage pour répartir la charge entre régions et versions de modèle, plus de proxys et de passerelles pour gérer les quotas et le basculement.

Chacune de ces couches est un gain de performance et un nouvel endroit par lequel l'état peut fuir. Un cache qui sert la mauvaise clé, un routeur qui réutilise une connexion, un proxy qui replie une réponse dans un autre flux : chacun est à un seul bug d'une fuite entre clients. Plus un fournisseur passe à l'échelle agressivement, plus il exploite de ces couches et plus il y pousse de charge.

C'est donc moins une histoire sur Anthropic qu'une histoire sur tout le monde. Les fournisseurs qui courent le plus vite pour ajouter de la capacité sont précisément les plus exposés à cette classe de bug, car la vitesse et l'infrastructure partagée sont la façon de servir des millions de requêtes à bas coût. C'est une propriété de l'architecture sur laquelle toute l'industrie se construit, pas le signe qu'une entreprise est négligente.

Sécurité des API d'IA dans les applications affichées dans le navigateur

Le risque de fuite entre clients décrit ci-dessus réside du côté du fournisseur d'API, mais la sécurité des API d'IA ne s'arrête pas là. Quand la sortie du modèle atterrit dans le navigateur, un nouvel ensemble de risques s'ouvre, que le SLA de votre fournisseur d'IA ne couvre pas.

Les applications modernes canalisent les réponses d'IA directement dans la page : réponses en streaming, éléments d'interface générés par IA, résultats d'appels d'outils affichés en ligne. Chacun de ces patterns crée une surface où une réponse altérée, retardée ou croisée peut causer de réels dommages dans la session réelle d'un utilisateur.

Injection de réponse. Si une réponse croisée inclut du balisage et que l'application l'affiche sans assainissement, ce balisage s'exécute dans une session authentifiée. L'incident du fournisseur est déjà résolu, mais le risque d'injection est structurel : tout chemin où la sortie brute du modèle touche le DOM est une cible, que la source soit une fuite côté fournisseur ou une injection de prompt provenant du contenu traité par le modèle.

Interférence de scripts tiers. Des scripts s'exécutant sur la même page que votre intégration d'IA peuvent intercepter les appels sortants à l'API, lire les payloads de réponse avant que votre code ne les traite, ou exfiltrer la sortie du modèle depuis le DOM. Un extrait d'analytique ou un widget de support compromis dispose du même accès réseau et DOM que votre application. La sécurité des API d'IA ne peut pas se limiter au seul appel API ; l'environnement de la page où il atterrit compte également.

Exfiltration de données via le contexte d'IA. Les applications qui donnent aux agents d'IA accès aux données utilisateur, aux tokens de session ou à un état sensible créent un canal que des attaquants peuvent exploiter en intégrant des instructions dans le contenu que le modèle traite; il s'agit d'une injection de prompt au niveau de la couche applicative. Le modèle répond à la question qui lui est posée ; il n'a pas conscience d'être utilisé comme vecteur d'exfiltration de données.

Fuite entre sessions au sein de votre produit. Lorsque plusieurs utilisateurs partagent un contexte de page (widgets d'IA intégrés dans un SaaS multi-locataires, mise en commun de sessions), la garantie d'isolation du fournisseur d'API ne couvre que son infrastructure. Si votre application mélange l'état de session entre utilisateurs, la fuite entre clients se produit à votre niveau.

Aucun de ces risques ne nécessite de compromettre le backend du fournisseur d'IA. Ils exploitent l'écart entre « l'appel API a réussi » et « la réponse a atterri en sécurité dans la bonne session utilisateur ».

Ce que cela signifie si vous construisez sur des API de LLM

Le point pratique est un changement de mentalité. La réponse d'une API de LLM est une donnée qui revient d'un système massivement partagé et en évolution rapide, pas un canal de confiance et privé entre vous et le modèle. Un mauvais jour, elle peut être erronée, périmée ou croisée avec un autre client.

Traitez-la ainsi :

  • Supposez qu'une réponse peut de temps en temps appartenir à la mauvaise requête. Ne concevez pas de flux où une seule réponse croisée corrompt en silence l'enregistrement d'un utilisateur ou l'expose à quelqu'un d'autre.
  • N'envoyez pas à une API de LLM des données que vous ne toléreriez pas de voir apparaître ailleurs, sauf si votre contrat et les contrôles du fournisseur les couvrent réellement. Les conditions de rétention zéro et d'isolation pour les entreprises comptent ici.
  • Validez et limitez les réponses avant d'agir dessus. Vérifiez la forme, le type et la plausibilité, comme vous valideriez n'importe quelle entrée non fiable.
  • Journalisez suffisamment pour détecter les fuites. Si vous ne stockez jamais les métadonnées de requête et de réponse, vous ne pouvez pas distinguer une erreur du modèle d'une réponse qui n'a jamais été la vôtre.

Quoi faire cette semaine

  1. Cartographiez chaque endroit où une réponse d'API de LLM entre dans votre système, et marquez celles qui s'affichent directement dans le navigateur.
  2. Traitez ces réponses comme une entrée non fiable : validez la structure, échappez tout ce qui est affiché dans la page et n'injectez jamais de HTML brut du modèle sans l'assainir.
  3. Décidez explicitement quelles données vous êtes prêt à envoyer à chaque fournisseur, et confirmez les conditions de rétention et d'isolation qui s'appliquent.
  4. Ajoutez une journalisation et des alertes capables de distinguer une réponse mal formée d'une réponse qui ne correspond pas à la requête envoyée.
  5. Surveillez la couche du navigateur, où la sortie d'IA, les scripts tiers et les données utilisateur se rencontrent désormais dans la même session.

Comment cside s'intègre

cside ne s'exécute pas dans le backend d'Anthropic ni d'aucun fournisseur, et ne peut pas réparer un cache qui renvoie les données du mauvais client. Ce qu'il traite, c'est la même classe de problème un cran plus près de votre utilisateur : le navigateur, où les réponses d'IA, les scripts tiers et les sessions authentifiées partagent désormais la même page.

cside offre une visibilité en temps réel sur ce qui s'exécute réellement dans cette session de navigateur : quels scripts se chargent, comment ils changent après le déploiement, quelles données ils lisent et où ils les envoient. À mesure que de plus en plus d'applications affichent la sortie du modèle directement dans la page, cette visibilité est la façon de détecter les conséquences côté client d'une réponse erronée ou croisée, comme un contenu affiché dans la mauvaise session ou un script qui cherche des données qu'il ne devrait jamais toucher.

Le point plus large est celui que cside a toujours défendu à propos des scripts tiers, désormais généralisé à l'infrastructure d'IA. Chaque couche que vous ajoutez pour aller plus vite est une couche par laquelle des données peuvent apparaître au mauvais endroit. Vous ne pouvez pas supprimer ces couches, mais vous pouvez instrumenter celle qui est la plus proche de votre utilisateur.

Commencez par la sécurité côté client pour la surveillance des scripts en temps réel, ou par Privacy Watch pour voir exactement ce que le code de vos pages collecte et envoie.

À lire aussi sur cside

À la date du 2026-06-05. Les détails de l'incident de l'API Claude reflètent la page d'état d'Anthropic et les signalements publics d'utilisateurs disponibles à cette date. Anthropic a qualifié l'événement d'erreurs élevées et n'a pas, à ce jour, confirmé d'exposition de données entre utilisateurs.

Réservez une démo de cside

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks, web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

La sécurité des API d'IA est la pratique qui consiste à protéger les applications intégrant des API de modèles d'IA, couvrant la connexion à l'API elle-même, les données transmises au modèle, la logique de traitement des réponses, et l'environnement où la sortie du modèle atterrit et s'affiche. Pour les applications dans le navigateur, cette dernière couche est souvent la plus faible : les réponses d'IA atteignent le DOM par la même surface que les scripts tiers, les sessions authentifiées et les données utilisateur.

Les principaux risques sont les fuites de réponses entre clients (l'API renvoie la sortie d'un autre utilisateur suite à des erreurs de cache partagé ou de pool de connexions), l'injection de réponses (la sortie brute du modèle s'affiche dans le DOM sans assainissement et exécute du balisage contrôlé par l'attaquant), l'interférence de scripts tiers (des scripts sur la même page interceptent ou exfiltrent des appels à l'API d'IA), et l'exfiltration de données via le contexte (un agent d'IA ayant accès à des données de session sensibles est manipulé pour les divulguer dans sa réponse).

Anthropic a enregistré l'événement comme des erreurs élevées sur de nombreux modèles Claude, dont Opus 4.5 à 4.8 et Sonnet 4.6, et n'a pas confirmé d'exposition de données entre utilisateurs. Les captures d'écran qui circulent et les témoignages directs suggèrent que certains appels à l'API ont renvoyé un contenu qui semblait appartenir à d'autres utilisateurs. À ce jour, cette lecture d'un croisement de données entre clients est cohérente avec les signalements, mais elle n'est pas officiellement confirmée.

Une fuite entre clients survient lorsque les données d'un client apparaissent dans la session d'un autre. Dans une API d'IA, cela se manifeste par une requête qui renvoie une réponse répondant au prompt de quelqu'un d'autre. Cela remonte généralement à une infrastructure partagée et mutable, comme un cache ou un pool de connexions, qui renvoie le mauvais objet sous charge.

Les caches et les pools de connexions sont partagés entre tous les clients pour maintenir une faible latence et un faible coût. Si une clé de cache entre en collision, si une connexion est réutilisée après avoir dû être abandonnée, ou si une requête annulée laisse un objet périmé, la réponse stockée d'un utilisateur peut être servie à un autre. Le symptôme est de recevoir des données que vous n'avez jamais demandées.

Oui. En mars 2023, un bug dans la bibliothèque cliente redis-py a fait que ChatGPT a montré à certains utilisateurs les titres de conversation d'autres utilisateurs, et a exposé des données de facturation limitées pour environ 1,2 % des abonnés ChatGPT Plus. Les numéros de carte complets n'ont pas été exposés. C'était la même classe de défaillance : une infrastructure partagée renvoyant des données au mauvais client après des requêtes annulées.

Traitez-les comme une entrée non fiable. Validez la forme et la plausibilité de chaque réponse, évitez d'envoyer des données que vous ne toléreriez pas de voir apparaître ailleurs, et journalisez assez de métadonnées pour distinguer une erreur du modèle d'une réponse qui n'a jamais été la vôtre. Si vous affichez la sortie du modèle dans le navigateur, assainissez-la avant qu'elle ne touche le DOM.

Les outils de sécurité côté client et de surveillance des scripts à l'exécution sont la catégorie conçue pour cela, car le risque se situe dans la session du navigateur, où se rencontrent la sortie de l'IA, les scripts tiers et les données authentifiées. Les contrôles côté serveur et le SLA de votre fournisseur d'IA s'arrêtent à la frontière de l'API. cside offre une visibilité à l'exécution sur les scripts qui s'exécutent, la façon dont ils changent après un déploiement et où ils envoient les données, pour que vous puissiez repérer une réponse qui atterrit dans la mauvaise session.

Privilégiez la visibilité à l'exécution sur ce qui s'exécute réellement dans la session du navigateur, pas seulement une analyse statique. Recherchez la détection des scripts qui changent après un déploiement, la surveillance des données que chaque script lit et de leur destination, et un déploiement léger qui ne route pas votre trafic. cside s'installe comme un unique script JavaScript propriétaire sans changement de DNS, ou via la méthode Scan sans agent, pour instrumenter la couche du navigateur sans ajouter un autre saut.

Non. Un pare-feu applicatif web inspecte le trafic à la périphérie du serveur et ne peut pas voir ce qui se rend à l'intérieur de la session du navigateur, où se rencontrent désormais la sortie de l'IA, les scripts tiers et les données de l'utilisateur. Il ne détectera pas un script qui lit une réponse du modèle depuis le DOM ni une réponse croisée apparaissant dans la mauvaise session. Associez les contrôles de périphérie à la surveillance à l'exécution de la couche du navigateur, la faille que cside est conçu pour combler.

cside surveille chaque script qui s'exécute dans une session de navigateur réelle et signale les comportements que les analyses statiques au niveau des scripts manquent: un script qui change après un déploiement, qui lit des charges utiles de réponse ou le DOM, ou qui envoie des données vers un point de terminaison nouveau ou inattendu. Comme il observe la session en cours d'exécution plutôt que le serveur, il révèle les conséquences côté client d'une réponse d'IA manipulée ou croisée, comme une sortie qui cherche à accéder à des données qu'elle ne devrait jamais toucher.

cside se déploie comme un unique script JavaScript propriétaire ajouté à vos pages, ou via la méthode Scan sans agent, sans changement de DNS ni réacheminement de votre trafic. À partir de là, il surveille la couche du navigateur où se rendent les réponses d'IA. La tarification suit un modèle à l'usage basé sur les sessions ou des paliers de pages vues, avec une offre gratuite pour démarrer et des conditions sur mesure pour les charges plus importantes ou réglementées, alors parlez à l'équipe pour obtenir un devis adapté.

Surveillez et sécurisez vos scripts tiers

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Commencez gratuitement, ou essayez Business avec un essai de 14 jours.

Interface du tableau de bord cside affichant la surveillance des scripts et les analyses de sécurité
Related Articles
Réserver une démonstration

Envie de passer tout ça en revue avec un ingénieur ?

Trente minutes, sur votre propre site. Pas de slides.

Réservez une démo personnalisée pour voir :

Comment atteindre la conformité PCI DSS 6.4.3 et 11.6.1 en 1 jour
Pourquoi les scripts tiers représentent un risque de sécurité pour vous et vos visiteurs
Comment surveiller les fuites de confidentialité et de consentement (RGPD, CCPA) sur chaque tiers
Comment stopper l'abus d'inscriptions, le partage de comptes et la fraude aux rétrofacturations grâce au device intelligence
Comment détecter et contrôler les agents IA et les bots qui atteignent votre site en temps réel

Vous préférez simplement poser une question ?

Recherche de créneaux…

Humains uniquement. On le saurait.

Un problème pour réserver ? Ouvrir le calendrier dans un nouvel onglet

Quel problème cherchez-vous à résoudre ?

Dites-le-nous en une ligne et nous reviendrons vers vous avec quelque chose d'utile, pas un discours générique.

Nous aidons souvent sur :

Voir quels scripts tiers s'exécutent sur votre site
Les preuves pour PCI DSS 6.4.3 et 11.6.1
Les bots, les agents IA et le vol de comptes

Vous préférez réserver un créneau ? Choisir un créneau