Le trilemme de la défense : pourquoi les wrappers anti-injection ne peuvent être complets
Une preuve vérifiée en Lean 4 (avril 2026) montre qu'aucun wrapper d'entrée continu et préservant l'utilité ne peut bloquer toute injection de prompt. Continuité, utilité et complétude ne peuvent coexister.
De quoi s’agit-il ?
Le 7 avril 2026, une équipe menée par Manish Bhatt et Sarthak Munshi a publié The Defense Trilemma: Why Prompt Injection Defense Wrappers Fail? (arXiv:2604.06436, révisé le 11 avril). L’article ne décrit pas une nouvelle attaque. Il démontre une limite : aucun wrapper de défense continu et préservant l’utilité ne peut rendre sûres toutes les sorties d’un modèle de langage. Un « wrapper » désigne ici toute défense qui prétraite l’entrée avant que le modèle ne la voie — un assainisseur, un paraphraseur, un prompt de garde, une étape de délimiteurs (spotlighting), une réécriture constitutionnelle.
L’injection de prompt occupe la place n°1 du OWASP Top 10 pour les applications LLM, et la réponse la plus répandue de l’industrie est précisément ce type de wrapper. Le trilemme énonce que cette approche populaire a un plafond mathématique : une défense peut être continue (des prompts proches reçoivent un traitement proche), préservant l’utilité (les prompts sûrs passent inchangés) et complète (toute sortie est sûre) — mais on ne peut en obtenir que deux des trois à la fois. Fait inhabituel pour de la recherche en sécurité, l’argument complet est vérifié par machine en Lean 4.
Comment ça fonctionne
Modélisons la sûreté du modèle par un score continu f(x) sur l’espace des prompts, avec un seuil τ : les prompts sous τ sont sûrs, ceux au-dessus sont dangereux, et exactement à τ se trouve la frontière de décision. Une défense D réécrit les prompts avant le scoring. Les trois propriétés produisent trois résultats, chacun démontré sous une hypothèse plus forte.
La fixation de la frontière (théorème 4.1) est le cœur, et l’intuition tient en une phrase. Une défense préservant l’utilité laisse intact chaque prompt sûr ; son ensemble de points fixes est donc fermé. Mais la région sûre est ouverte (c’est la préimage d’un intervalle ouvert par un score continu). Dans un espace de prompts connexe, un ouvert propre non vide ne peut pas être également fermé — les points fixes doivent donc déborder sur la frontière elle-même. Traduction : certains prompts situés exactement sur la ligne sûr/dangereux traversent la défense sans modification. La défense ne peut pas nettoyer les entrées les plus proches du bord.
La contrainte ε-robuste (théorème 5.1) étend ceci d’un point à une région. Sous une hypothèse de régularité de Lipschitz (la défense ne peut pas déplacer les scores arbitrairement vite), toute une bande de mesure positive de prompts proches de la frontière reste proche du seuil après défense. Impossible de pousser uniformément ce voisinage vers la sûreté.
La région dangereuse persistante (théorème 6.3) est le résultat le plus fort : sous une condition de transversalité — quand la surface d’alignement monte plus vite que la défense ne peut la rabaisser — un ensemble de mesure positive d’entrées reste strictement dangereux après l’exécution de la défense. Pas à la limite ; dangereux.
Les auteurs présentent la conclusion comme un résultat « no free lunch » pour les défenses, analogue au théorème classique de Wolpert selon lequel aucun optimiseur ne domine sur tous les problèmes. Ils étendent aussi l’impossibilité aux conversations multi-tours, aux défenses stochastiques (randomisées) et aux pipelines d’agents non linéaires, où ils notent que les appels d’outils amplifient l’échec au lieu de le contenir.
Pourquoi c’est important
Le résultat est un diagnostic précis de la raison pour laquelle le réflexe « assainir l’entrée » déçoit régulièrement. Deux des trois propriétés du trilemme sont des choses que les défenseurs veulent activement : la continuité (pour un système prévisible) et la préservation de l’utilité (pour ne pas bloquer les utilisateurs légitimes). En tenant les deux, la complétude devient mathématiquement hors d’atteinte — il existera toujours un ensemble de mesure positive d’entrées que le wrapper laisse passer. Un attaquant a seulement besoin que cet ensemble soit non vide.
Cela rejoint notre couverture de l’intégrité contextuelle et de la raison pour laquelle séparer données et instructions est une erreur de catégorie : un article soutient sémantiquement que la ligne données/instructions est le mauvais cadre, l’autre prouve topologiquement que le wrapper bâti dessus ne peut être complet. Les deux pointent dans la même direction — corriger le flux d’entrée est structurellement insuffisant.
Les dates aident à pondérer ce résultat. Le préprint date du 7 avril 2026 et, en tant qu’affirmation issue des méthodes formelles, sa crédibilité repose sur les preuves, pas sur un statut de relecture par les pairs : le développement Lean 4 annonce 45 fichiers, ~350 théorèmes, zéro instruction sorry (preuve admise) et trois axiomes standard, avec un artefact publié ouvertement. La section empirique valide les prédictions sur trois modèles — Llama-3-8B, GPT-OSS-20B et GPT-5-Mini — en mesurant les bandes d’échec proches de la frontière prédites par la théorie.
Une mise en garde sur le périmètre, que les auteurs soulignent : les théorèmes contraignent uniquement un wrapper continu unique D : X → X sur un espace de prompts connexe. Ce n’est pas une preuve que les LLM ne peuvent être défendus.
Défenses
L’intérêt de l’article pour les défenseurs est qu’il indique précisément quel espace de conception est mort et lequel reste ouvert. De façon cruciale, l’impossibilité ne couvre pas :
- L’alignement à l’entraînement — RLHF, DPO, entraînement constitutionnel qui modifie
flui-même plutôt que d’envelopper son entrée. - Les changements architecturaux du modèle.
- Les défenses discontinues — listes de blocage strictes et classifieurs discrets autorisés à rejeter, pas à réécrire. Abandonner la continuité est une échappatoire légitime au trilemme.
- Les filtres en sortie, les ensembles et la relecture humaine.
- Les systèmes multi-composants qui rejettent ou redirigent les entrées au lieu de préserver l’utilité sur chaque prompt — c’est-à-dire des systèmes prêts à refuser certaines entrées d’apparence légitime.
La « prescription d’ingénierie » des auteurs découle des mathématiques : aplatir la frontière (réduire la confiance du modèle près de τ), réduire la constante de Lipschitz (limiter la vitesse de variation des scores), réduire la dimension effective de l’espace de prompts que la défense doit couvrir, et surveiller la frontière, ne pas l’éliminer — accepter qu’une région résiduelle existe et l’instrumenter plutôt que de prétendre qu’un wrapper l’a refermée.
L’enseignement pratique rejoint l’orthodoxie de la défense en profondeur, désormais étayée par une preuve : ne misez pas la sûreté sur un unique assainisseur d’entrée. Traitez les wrappers comme une seule couche superficielle, déplacez la sûreté réelle vers l’entraînement et l’architecture, et concevez les pipelines d’agents en partant du principe que certaines entrées injectées atteindront le modèle — de sorte que les dégâts d’une injection réussie soient bornés par des permissions d’outils minimales et des contrôles en sortie, et non par la promesse du wrapper de tout intercepter.
État des lieux
| Élément | Détail |
|---|---|
| Article | The Defense Trilemma: Why Prompt Injection Defense Wrappers Fail? (arXiv:2604.06436) |
| Publié | 2026-04-07 (révisé le 2026-04-11) |
| Résultat | Continuité + préservation de l’utilité + complétude ne peuvent coexister pour un wrapper |
| Vérification | Lean 4 + Mathlib : 45 fichiers, ~350 théorèmes, zéro sorry, trois axiomes standard |
| Empirique | Llama-3-8B, GPT-OSS-20B, GPT-5-Mini |
| Périmètre | Wrappers continus sur espaces de prompts connexes uniquement ; défenses à l’entraînement et architecturales non concernées |