Les en-têtes HTTP, un nouveau vecteur pour les attaques par injection de prompt
Des recherches montrent que 30 sites ont utilisé des en-têtes de réponse HTTP pour injecter des instructions dans des agents IA, contournant ainsi les défenses standard au niveau de la page.
Traduit automatiquement depuis l'original anglais.
Les chercheurs de Signals Corps ont analysé 217 millions de réponses web et constaté que les serveurs utilisent de plus en plus les en-têtes HTTP pour communiquer avec les agents IA. Bien que la plupart de ces en-têtes se contentent d'orienter les agents vers des fichiers de documentation, un nombre faible mais significatif contient des tentatives directes d'injection. Cette découverte met en évidence un angle mort dans les pratiques de sécurité actuelles, car de nombreux développeurs supposent que seul le contenu visible de la page représente un risque pour les grands modèles de langage.
Ce qui s'est passé
L'équipe de recherche a scanné 10 % du jeu de données Common Crawl de septembre 2026, couvrant 217 097 223 réponses de pages. Ils ont spécifiquement recherché des en-têtes de réponse HTTP contenant du texte destiné aux systèmes d'IA. Le scan a identifié 7 959 sites envoyant de tels en-têtes. La grande majorité, soit 7 271 sites, utilisait ces en-têtes comme pointeurs, dirigeant les agents vers des ressources telles que des fichiers llms.txt ou des serveurs Model Context Protocol (MCP). L'en-tête x-llms-txt était le plus courant, apparaissant sur 6 989 sites.
Cependant, 30 sites sont allés au-delà de simples pointeurs et ont tenté une injection de prompt. Vingt-quatre de ces tentatives utilisaient un en-tête nommé X-AI. La plupart étaient des canulars, mais certaines contenaient des instructions pouvant déclencher des actions si l'agent disposait de permissions suffisantes, telles que l'accès au shell ou à la base de données. De plus, 139 sites incluaient des en-têtes classant le client comme un bot IA, indiquant que les serveurs distinguent activement le trafic humain du trafic automatisé. Certains sites utilisaient même des en-têtes pour protester contre le scraping par IA, avec des noms comme X-AI-Makes-Us-Dumber.
L'étude a également testé la manière dont les principaux agents de codage IA géraient ces en-têtes. Lors des tests d'octobre 2026, Claude Opus, Sonnet et Haiku exécutés dans Claude Code n'ont pas agi sur les en-têtes de test par défaut. Cependant, lorsque le prompt de l'utilisateur instruisait explicitement les agents de suivre les directives du site, ils obéissaient dans sept cas sur neuf. Cela suggère que le risque dépend fortement de l'autorité accordée par l'utilisateur à l'agent dans son prompt système.
Comment cela fonctionne
L'injection indirecte de prompt survient lorsqu'un agent IA lit du contenu contrôlé par un tiers, comme une page web, et traite les instructions cachées dans ce contenu comme faisant partie de ses propres directives. Les en-têtes de réponse HTTP constituent un vecteur particulièrement furtif car les navigateurs ne les affichent pas aux utilisateurs humains. Une réponse HTTP se compose d'une ligne d'état, d'un bloc d'en-têtes et d'un corps. Alors que les humains ne voient que le corps, l'outil de récupération (fetch) d'un agent peut transmettre directement les en-têtes à la fenêtre de contexte du modèle.
Le fait que les en-têtes atteignent le modèle dépend entièrement de l'outil de récupération utilisé par l'agent. Certains outils, comme l'outil requests de LangChain, ne renvoient que le corps de la réponse, bloquant efficacement ce vecteur d'attaque. D'autres, tels que les outils shell exécutant curl -i, transmettent chaque en-tête de réponse au modèle. Le Gemini CLI, lorsqu'il est configuré avec experimental.directWebFetch, envoie tous les en-têtes sous forme JSON dans les réponses d'erreur, contournant les enveloppes de contenu non fiable. Le serveur de récupération de référence MCP transmet rarement les en-têtes, sauf pour les valeurs Content-Type sur les pages non HTML ou les erreurs robots.txt.
Détails clés
- 7 959 sites ont envoyé des en-têtes HTTP destinés aux agents IA sur les 217 millions scannés.
- 30 sites contenaient de véritables tentatives d'injection de prompt, principalement dans les en-têtes
X-AI. - 7 271 sites utilisaient des en-têtes pour orienter les agents vers des ressources externes comme
llms.txt. - Des agents comme Claude Code peuvent être trompés si leurs prompts accordent une autorité élevée au contenu du site.
- Les outils de récupération basés sur le shell comme
curl -iexposent tous les en-têtes au modèle, augmentant le risque. - Les outils de récupération limités au corps empêchent les injections basées sur les en-têtes en écartant les métadonnées avant le traitement.
Pourquoi c'est important
Pour les ingénieurs logiciels développant des agents IA, cette recherche révèle que sécuriser le contenu visible de la page n'est plus suffisant. Si votre agent utilise un outil de récupération qui inclut les en-têtes HTTP dans son contexte, il est vulnérable aux instructions cachées dans les métadonnées. Ceci est particulièrement critique pour les agents disposant de permissions élevées, tels que ceux pouvant exécuter des commandes shell ou accéder à des bases de données. Un attaquant pourrait intégrer des instructions malveillantes dans un en-tête, que l'agent pourrait exécuter sans que l'utilisateur ne voie jamais la source de la commande.
La prévalence des en-têtes pointeurs change également la façon dont les agents naviguent sur le web. Lorsqu'un agent suit un lien fourni dans un en-tête, il fait confiance à la direction du serveur. Si cette destination héberge un serveur MCP ou un fichier de compétence contrôlé par un adversaire, l'agent pourrait être dirigé vers un environnement compromis. Les développeurs doivent auditer quels outils de récupération leurs agents utilisent et comprendre exactement quelles données ces outils transmettent au modèle de langage. Traiter les en-têtes comme des entrées non fiables est désormais une étape nécessaire de l'hygiène de sécurité IA.
Ce que vous pouvez faire
- Auditez l'outil de récupération de votre agent pour confirmer s'il transmet les en-têtes HTTP au modèle.
- Désactivez les fonctionnalités expérimentales comme
experimental.directWebFetchdans Gemini CLI sauf si strictement nécessaire. - Restreignez les permissions shell pour les agents afin de leur empêcher d'exécuter
curl -iou des commandes similaires. - Traitez tout contenu récupéré depuis des sources externes, y compris les en-têtes et les cibles de redirection, comme non fiable.
- Mettez à jour les prompts système pour instruire explicitement les agents d'ignorer les instructions trouvées dans les métadonnées HTTP.
- Surveillez les journaux des agents pour détecter les appels d'outils inattendus pouvant indiquer une injection indirecte de prompt réussie.



