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

Une défense certifiée pour la mémoire RAG qu'un agent empoisonné n'oublie jamais

Un article de juin 2026 modélise l'empoisonnement de mémoire multi-session — où une seule entrée piégée corrompt tous les futurs utilisateurs — et propose la première défense assortie d'une borne de robustesse prouvée plutôt que d'un simple filtre heuristique.

2026-07-02 // 7 min affects: rag-memory-agents, langgraph, autogen, memgpt

De quoi s’agit-il ?

Un preprint déposé sur arXiv en juin 2026 par le chercheur indépendant Tarun Sharma s’attaque à une faille défensive que la plupart des équipes construisant des agents IA persistants n’ont pas mesurée : lorsqu’un agent conserve une mémoire qui survit d’une session à l’autre, un attaquant capable d’y écrire quelques entrées soigneusement rédigées peut discrètement rediriger le comportement de l’agent pour chaque futur utilisateur dont la question correspond. L’auteur nomme cette menace le Multi-Session Memory Poisoning (MSMP) et propose Signed Memory with Smoothed Retrieval (SMSR), présenté comme la première défense assortie d’une borne de robustesse prouvée plutôt que d’un filtre au jugé.

La classe d’attaque n’est pas nouvelle. Elle a été démontrée par les travaux d’injection de mémoire par requête seule MINJA (mars 2025) et par AgentPoison (2024). La nouveauté, c’est une défense étayée par des mathématiques, publiée dans un contexte où ces attaques affichent des taux de réussite bien supérieurs à 90 %.

Comment ça marche

Un agent à génération augmentée par récupération (RAG) encode chaque question, récupère les entrées les plus proches de sa mémoire et les colle dans le prompt comme contexte. Dans un agent persistant, la mémoire est en ajout seul et l’agent y écrit après la plupart des interactions. C’est là le piège : le chemin d’écriture qui donne à l’agent un contexte utile à long terme est aussi celui qu’emprunte l’attaquant pour y déposer des instructions. Comme le résume l’article, dans un système de mémoire d’agent, la donnée est l’instruction — une mémoire récupérée agit comme un exemple en contexte qui oriente la réponse suivante, si bien que le conseil habituel « séparez les données des commandes » ne s’applique pas.

L’attaquant n’a pas besoin d’accès à la base. La lignée de travaux MINJA a montré que l’agent peut être poussé, par des requêtes ordinaires, à écrire lui-même des traces de raisonnement empoisonnées, ensuite récupérées pour les utilisateurs suivants. Une seule mauvaise entrée parmi des dizaines de milliers peut suffire. Les déploiements multi-tenant aggravent le problème : l’interaction d’une personne peut altérer les réponses servies à toutes les autres.

SMSR répond par deux couches. La première appose à chaque mémoire légitime, au moment de l’écriture, une signature de provenance HMAC, si bien que toute entrée insérée via une mauvaise configuration ou une sauvegarde volée — tout ce qui n’est pas signé — est simplement ignorée à la récupération. La seconde couche protège contre un initié authentifié capable d’écrire des entrées signées : au lieu de toujours lire les meilleures correspondances, l’agent en récupère un surplus puis en échantillonne aléatoirement un sous-ensemble à plusieurs reprises, et retient une majorité fondée sur le verdict des différents tirages. Comme l’attaquant ne peut garantir que ses entrées figurent dans chaque échantillon aléatoire, son influence est bornée — et l’article dérive cette borne formellement au lieu de l’affirmer.

Écriture :   mémoire --> [étiquette de provenance HMAC] --> stockage
Requête :    sur-récupération --> ablation aléatoire x N --> majorité par verdict --> réponse
             (entrées non signées écartées ; influence de l'attaquant bornée)

Les auteurs prouvent aussi un résultat d’impossibilité : aucun filtre agissant uniquement à la récupération, sans provenance, ne peut certifier contre un attaquant adaptatif. Autrement dit, signer la mémoire n’est pas un ornement — c’est la partie qui rend une garantie possible. Ils documentent en outre un « effet de minorité cohérente », où un vote majoritaire naïf fondé sur les chaînes de caractères se fait berner parce que la réponse identique de l’attaquant paraît plus cohérente que des réponses honnêtes réellement variées ; passer à un vote fondé sur le verdict le supprime.

Pourquoi c’est important

Une mémoire empoisonnée n’expire pas avec la fenêtre de contexte — elle peut rester dans le stock et se redéclencher au fil d’un nombre illimité de sessions futures. C’est pourquoi l’OWASP classe les faiblesses des vecteurs et embeddings comme LLM08 dans son Top 10 2025 pour les applications LLM. Les mesures de l’article soulignent l’enjeu : les filtres heuristiques simples (listes noires de mots-clés, contrôles d’entropie et d’anomalie) ont été entièrement contournés par un texte fluide au style d’entreprise, et l’injection non signée atteignait 93–100 % de réussite avant toute défense. Avec SMSR, l’injection non signée tombe à 0 %, le taux de réussite d’un attaquant authentifié passe de cette même fourchette de 93–100 % à environ 8 % à l’échelle de production, et une attaque de bout en bout par requête seule chute de 65,3 % à 5,3 %, tandis que l’utilité sur les requêtes propres reste autour de 85 % — un coût réel mais modéré. Les résultats tiennent d’une famille de modèles à l’autre.

Comme toujours avec un preprint isolé, considérez les chiffres précis comme les résultats de l’auteur, pas encore relus par les pairs, et validez-les dans votre propre contexte.

Défenses

Les enseignements pratiques dépassent ce seul système.

  • Signez votre mémoire à l’écriture. Attachez une étiquette de provenance (un HMAC ou équivalent) à chaque entrée écrite légitimement et écartez tout ce qui n’est pas signé à la récupération. C’est ce qui ferme le chemin d’écriture non authentifié.
  • Ne faites pas confiance à un filtre heuristique seul. Les filtres par mots-clés, entropie et anomalie ont été entièrement contournés par un texte au ton naturel ; ne les utilisez qu’en défense en profondeur, jamais comme garantie.
  • Ajoutez une récupération aléatoire contre le risque interne. Sur-récupérez et échantillonnez, puis agrégez sur plusieurs tirages, afin qu’aucun rédacteur unique ne puisse dominer chaque contexte.
  • Agrégez sur les verdicts, pas sur les chaînes. Un vote majoritaire brut sur le texte des réponses peut être manipulé par un attaquant cohérent ; comparez plutôt le sens des réponses.
  • Traitez la mémoire comme une frontière de sécurité. Journalisez les écritures, cloisonnez la mémoire par tenant quand c’est possible, et rappelez-vous que, dans un agent, une donnée récupérée se comporte comme une instruction.

Statut

ÉlémentRéférenceDate
Défense certifiée SMSRarXiv:2606.127032026-06
Injection de mémoire par requête seule (MINJA)arXiv:2503.037042025-03
Empoisonnement mémoire/base de connaissances (AgentPoison)arXiv:2407.127842024
Référence de cadreOWASP LLM08 (Top 10 pour applications LLM 2025)2025

À retenir : si votre agent se souvient, partez du principe que sa mémoire peut être empoisonnée — et préférez une défense capable de prouver l’ampleur des dégâts qu’un attaquant borné peut encore causer, à celle qui espère seulement l’attraper.

Sources