système : OPÉRATIONNEL
← retour à tous les hacks
INDIRECT INJECTION MEDIUM NEW

Profondeur d'injection dans les agents ReAct : la position prime sur la formulation

Une étude de juin 2026 sur les agents ReAct à appels d'outils montre que c'est la profondeur d'injection — pas la rhétorique — qui pilote l'injection indirecte : 60 % de réussite au premier appel d'outil, 0 % au quatrième.

2026-06-15 // 6 min affects: react-agents, tool-calling-agents, llm-agents

De quoi s’agit-il ?

La plupart des travaux sur l’injection indirecte se demandent ce que doit dire une charge malveillante — quelle formulation, quels signaux d’autorité, quelle obfuscation passe les défenses d’un modèle. Un nouveau papier arXiv, “Depth-Dependent Indirect Prompt Injection in Tool-Calling ReAct Agents” (arXiv:2605.30686, juin 2026), pose une autre question : , dans l’exécution d’un agent, la charge atterrit-elle, et est-ce que cela compte plus que la formulation. La réponse : la position domine. Une injection placée dans le premier résultat d’outil que lit l’agent a bien plus de chances de réussir que le même texte placé quelques étapes plus loin.

L’étude cible les agents ReAct — la boucle désormais standard qui entrelace raisonnement en chaîne et appels d’outils, utilisée pour la planification, la récupération de fichiers, la navigation web et l’accès aux données. Tout outil dont un attaquant contrôle la valeur de retour (une page web, un document, un e-mail, une réponse d’API) est un canal d’injection indirecte. Ce que le papier ajoute, c’est une mesure structurée de trois variables — profondeur d’injection, cadrage de la charge, budget de tours — au lieu de traiter l’injection comme un événement binaire unique.

Comment ça marche

Un agent ReAct exécute une boucle : réfléchir, appeler un outil, lire la sortie de l’outil (l’observation), réfléchir à nouveau, appeler un autre outil, et ainsi de suite jusqu’à répondre ou atteindre un plafond de tours. L’injection indirecte cache des instructions dans l’une de ces observations pour que l’agent traite le texte de l’attaquant comme s’il faisait partie de sa propre tâche.

Les auteurs font varier trois dimensions et mesurent le taux de réussite des attaques (ASR) :

# Conception d'étude conceptuelle — mesure, pas recette d'exploitation.
profondeur d'injection : quelle observation d'outil de la séquence porte la charge (1re, 2e, ... 5e)
cadrage de la charge    : le registre rhétorique (ex. instruction brute vs. « étape suivante utile »)
budget de tours         : combien de tours d'appel l'agent peut faire avant de devoir répondre

Le résultat principal : la profondeur d’injection est la variable dominante. L’ASR décroît de façon monotone avec la profondeur : environ 60 % à la profondeur 1 (la première observation lue par l’agent) jusqu’à 0 % aux profondeurs 4 et 5. Autrement dit, une injection rencontrée tôt — quand le plan de l’agent se forme encore — l’oriente ; la même injection rencontrée tard, une fois l’agent engagé sur une trajectoire et près de répondre, est largement ignorée.

Deux conséquences. D’abord, le papier indique qu’assainir uniquement la première observation d’outil capture environ 67 % des réussites d’injection mesurées — une petite portion de la fenêtre de contexte concentre l’essentiel du risque. Ensuite, le levier de conception efficace pour un attaquant est structurel, pas rhétorique : la réussite tient moins à une formulation habile qu’au positionnement de l’instruction dans une sortie d’outil où l’action demandée se lit comme une étape suivante plausible. Cela rejoint le cadrage de “Design Patterns for Securing LLM Agents against Prompt Injections”l’endroit où les données non fiables entrent dans le flux de contrôle importe plus que leur formulation — et prolonge le benchmark InjecAgent qui a formalisé l’injection indirecte sur les agents outillés.

Pourquoi c’est important

L’effet de profondeur recentre l’endroit où placer le budget défensif. Les équipes appliquent souvent un assainissement uniforme à chaque résultat d’outil, ou aucun. Cette mesure indique que les premières observations d’une exécution sont démesurément dangereuses, car c’est la fenêtre où le plan de l’agent est le plus malléable. Cela explique aussi pourquoi certaines injections qui « marchent » sur un test à coup unique échouent dans une trace agentique plus longue, et inversement — la même charge a un rayon d’impact différent selon le moment où l’agent la rencontre.

Il faut en énoncer les limites. Ce sont des chiffres d’ASR issus du banc d’essai d’une seule étude, sur un ensemble de modèles et de tâches choisis par les auteurs ; la domination de la faible profondeur est une tendance, pas une garantie, et un attaquant déterminé qui contrôle la première source récupérée garde une large ouverture. Le résultat est un signal de priorisation, pas une règle sûre par défaut. Prendre « assainir la première observation » pour une protection suffisante en soi serait précisément la mauvaise leçon.

Défenses

L’enseignement pratique : pondérer la vigilance par la profondeur plutôt que de l’étaler uniformément.

Appliquez les contrôles de provenance et d’assainissement les plus stricts aux premières observations d’outils, là où le papier montre l’agent le plus orientable, tout en filtrant quand même les suivantes. Marquez chaque retour d’outil comme donnée non fiable, jamais comme instruction — le principe de la hiérarchie d’instructions — pour que la position devienne un réglage fin par-dessus un modèle de confiance solide, et non son remplacement.

Associez cela à des défenses au niveau de la trajectoire qui ne dépendent pas de l’interception de la charge à l’ingestion. Les schémas de correction à l’inférence comme ICON (arXiv:2602.20708, février 2026) détectent et réparent une trajectoire compromise en cours d’exécution tout en préservant la continuité de la tâche, ce qui couvre le cas d’une injection tardive ou bien positionnée qui échappe au filtrage d’entrée. Vérifier les appels d’outils avant de les valider — le motif verify-before-commit — intercepte une action injectée quelle que soit l’observation qui l’a introduite.

Enfin, bornez le rayon d’impact par l’architecture. Maintenir les agents dans la règle de deux des agents — limiter combien de (entrée non fiable, données privées, action externe) un même agent combine — fait qu’une injection à la profondeur 1 qui oriente bel et bien l’agent a moins de choses à atteindre. Le filtrage pondéré par la profondeur réduit la fréquence des détournements ; les limites de capacités bornent la gravité de chacun.

Statut

DimensionRésultatSourceDate
Profondeur d’injectionASR ~60 % à la profondeur 1, monotone jusqu’à 0 % à 4–5arXiv:2605.30686juin 2026
Assainissement de la 1re observationCapture ~67 % des réussites d’injectionarXiv:2605.30686juin 2026
Levier d’attaque efficaceStructurel (position) plutôt que rhétorique (cadrage)arXiv:2605.30686juin 2026
Défense par réparation de trajectoireICON, correction à l’inférencearXiv:2602.20708février 2026

Il s’agit de recherche par mesure publiée, avec une lecture défensive, pas d’une vulnérabilité produit non corrigée. La contribution est une priorisation : dans une boucle ReAct, la première chose que l’agent lit du monde extérieur mérite la plus grande méfiance.

Sources