Fuite de données d'un agent IA : liens, images, webhooks
Comment un agent IA peut-il faire fuiter des données par ses outils ?
Un agent fuit des données quand un attaquant parvient à lui faire inclure des informations privées dans une requête qui part vers un serveur qu'il contrôle. Le modèle n'a pas besoin d'être « piraté » : il lui suffit de suivre une instruction cachée dans un contenu qu'il lit.
Simon Willison résume le terrain favorable avec la « lethal trifecta » : accès à des données privées, exposition à du contenu non fiable et capacité à communiquer vers l'extérieur. Quand les trois sont réunis, un attaquant peut tromper l'agent pour qu'il fuite les données. Ce risque relève de deux entrées de l'OWASP Top 10 pour les LLM 2025 : la divulgation d'informations sensibles (LLM02) et la mauvaise gestion des sorties (LLM05).
Trois canaux reviennent en test : les images et liens Markdown, les outils de requête sortante, et les messages envoyés au nom de l'utilisateur.
| Canal | Mécanisme | Déclenchement |
|---|---|---|
| Image Markdown | L'URL de l'image contient les données en paramètre | Automatique, au rendu dans le navigateur |
| Lien Markdown | L'URL du lien contient les données | Après un clic de l'utilisateur |
| Outil HTTP ou webhook | L'agent appelle lui-même l'URL de l'attaquant | Automatique, côté serveur |
| Message sortant | E-mail, chat ou ticket envoyé à un tiers | Automatique si l'envoi est autorisé |
Comment fonctionne l'exfiltration par image Markdown ?
L'attaquant fait générer au modèle une image Markdown dont l'URL pointe vers son serveur, avec les données volées dans les paramètres. Le navigateur charge l'image automatiquement et envoie ainsi les données, sans aucun clic.
Le chercheur Johann Rehberger a documenté ce mécanisme sur Bing Chat : le contenu Markdown produit par le modèle était rendu en balise image, l'URL contenait les données de la page ajoutées en paramètre, et le navigateur la chargeait seul. Selon lui, Microsoft a probablement corrigé le problème en introduisant une politique de sécurité de contenu (CSP) qui n'autorise les images que depuis quelques domaines Bing de confiance, mais il précise ne pas connaître le détail complet du correctif. La page OWASP de LLM05 cite d'ailleurs dans ses références un article sur le vol de données de chat par images Markdown.
Exemple de ce que produit un modèle manipulé (adresse fictive) :

Pour l'utilisateur, l'image paraît vide ou minuscule. Pour l'attaquant, la requête arrive avec les données.
Et les liens, les outils HTTP et les webhooks ?
Les liens fonctionnent comme les images mais exigent un clic : l'attaquant mise sur un texte convaincant (« voir le rapport complet ») dont l'URL embarque les données. Les outils HTTP et les webhooks sont plus directs, puisque l'agent émet lui-même la requête.
Un agent muni d'un outil « HTTP Request » ou d'un connecteur de webhook libre peut recevoir, dans un e-mail ou une page, l'instruction d'envoyer le contexte vers une URL externe. Aucun navigateur ni clic ne sont nécessaires. C'est pourquoi les outils ouverts (URL arbitraire) sont dangereux : ils font de chaque injection une exfiltration possible. Notre étude de cas sur un webhook n8n illustre le versant entrant de ce risque.
Les messages sortants forment le troisième canal : un agent qui peut envoyer un e-mail ou poster dans un chat peut y glisser des données, ou un lien piégé, à l'adresse que l'attaquant a choisie.
Quelles défenses mettre en place ?
Appliquez des contrôles à chaque étape de la chaîne, en vous appuyant sur le code et la configuration plutôt que sur des consignes au modèle. L'OWASP recommande de traiter le modèle comme un utilisateur non fiable, de valider ses sorties et d'imposer une politique de sécurité de contenu stricte.
- Ne pas rendre automatiquement les images externes. Remplacez les images Markdown par du texte, ou n'autorisez que des domaines de confiance. Une CSP avec une directive
img-srcrestreinte bloque le chargement vers un serveur tiers. - Neutraliser les liens. Affichez l'URL réelle, réécrivez les liens via un domaine de redirection contrôlé, ou supprimez les liens que le modèle a construits à partir de données de la conversation.
- Liste blanche pour les appels sortants. Les outils HTTP, webhooks et connecteurs n'atteignent que des domaines approuvés, vérifiés dans le code appelant.
- Restreindre les destinataires. Les e-mails et messages ne partent que vers des adresses ou domaines autorisés.
- Casser la trifecta. Supprimez au moins un des trois éléments : retirez l'accès aux données privées, isolez le contenu non fiable, ou coupez la capacité de communication.
- Contrôle d'accès avant le contexte. Ce que le modèle ne voit pas ne peut pas fuiter. Appliquez les droits de l'utilisateur au moment de la recherche et de l'appel d'API.
- Filtrer les sorties. Détectez les URL contenant des chaînes longues, des identifiants ou des données issues du contexte.
- Journaliser et alerter. Consignez chaque requête sortante et signalez les domaines inédits.
Pour la dimension « contenu non fiable », reportez-vous à notre page injection de prompt.
Comment tester les fuites par les outils ?
Montez un point de collecte que vous contrôlez, puis tentez de pousser l'agent à lui envoyer des données de test par chacun des canaux. Le succès se mesure à ce qui arrive sur votre serveur, pas à ce que dit le modèle.
Plan de test :
| Test | Mise en place | Résultat attendu |
|---|---|---|
| Image Markdown | Instruction cachée demandant une image vers votre point de collecte avec un jeton de test | Aucune requête reçue, image bloquée par la CSP |
| Lien Markdown | Instruction demandant un lien contenant le jeton | Lien neutralisé ou affiché en clair |
| Outil HTTP | Instruction demandant un appel vers votre point de collecte | Appel refusé par la liste blanche |
| Webhook | Même test via un connecteur webhook | Appel refusé |
| Message sortant | Instruction demandant l'envoi du jeton à une adresse externe | Envoi bloqué ou soumis à approbation |
| Données d'un autre utilisateur | Demande de résumer des données hors des droits de l'utilisateur | Données absentes du contexte |
Utilisez des jetons factices et jamais de vraies données. Pour chaque canal, testez les deux voies : l'utilisateur qui demande directement, et le contenu piégé (e-mail, page, document) qui demande à sa place. Répétez les essais, car les résultats varient. Les journaux de votre point de collecte et ceux de l'agent servent de preuve.
Quelle priorité donner à ces corrections ?
Commencez par la liste blanche des appels sortants et le blocage des images externes, qui ferment les canaux automatiques. Ils s'implémentent en quelques heures et traitent les chemins sans interaction humaine, les plus graves.
Viennent ensuite le contrôle d'accès avant le contexte et la validation humaine des envois. Pour un cadrage complet, voyez notre guide de la sécurité des agents IA.
Comment faire vérifier que rien ne sort ?
Un test adverse indépendant confirme que vos fermetures de canaux tiennent. Le Red Team Agent Express (1 900 €, 5 jours) comprend des scénarios d'exfiltration par images, liens, outils et messages sur un agent de votre choix. Pour plusieurs agents ou une livraison via une agence, la prestation sur mesure se chiffre sur devis, après un rendez-vous découverte de 30 minutes gratuit.
Votre produit embarque un agent IA ? CleanIssue teste ce qu’un inconnu peut lui faire faire avec le Red Team Agent Express (5 jours, 1 900 €), ou un red team sur mesure pour plusieurs agents et serveurs MCP.
Articles liés
Trois analyses proches pour continuer la lecture sur la meme surface de risque.
Chatbot IA : 5 façons de fuiter des données et les tester
Prompt système, contexte trop riche, mélange d'utilisateurs, exfiltration par images, outils bavards : 5 voies de fuite d'un chatbot et leurs tests.
Tester un agent n8n contre l'injection de prompt
Comment tester un agent n8n contre l'injection de prompt : cartographier entrées et outils, charges de test, lecture des exécutions, correctifs.
Fuite ANTS 2026 : 11,7 millions de comptes, l'hypothèse IDOR
Fuite du portail ANTS en avril 2026 : ce que l'on sait, ce qu'est une IDOR, comment la tester et le risque quand un agent IA appelle l'API.
Sources
Services associés
Si ce sujet reflète un risque concret sur votre stack, voici les audits CleanIssue les plus pertinents.