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

Cross-Site Prompting : la menace en forme de XSS qui vise les agents web

Un article de UC Berkeley nomme l'équivalent du XSS pour les agents web — le Cross-Site Prompting — et propose une couche de confinement système qui fait chuter le taux de succès des attaques de 85,5 % à 0,7 % sans toucher au site.

2026-07-15 // 7 min affects: web-agents, browser-agents, llm-agents, autonomous-browsing-agents

De quoi s’agit-il ?

Le 9 juillet 2026, des chercheurs de UC Berkeley ont publié un article introduisant le Cross-Site Prompting (XSP) et une défense associée nommée Prismata. Le XSP désigne une menace que les agents de navigation autonomes héritent du web ouvert : un site légitime mêle du contenu de confiance, produit par l’éditeur, à du contenu tiers non fiable — avis produits, publicités, commentaires d’utilisateurs — et un attaquant glisse des instructions en langage naturel dans cette zone non fiable. Lorsqu’un agent web lit la page pour accomplir sa tâche, il peut obéir à l’instruction plantée : répondre à un avis en y joignant les coordonnées bancaires de l’utilisateur, ou réinitialiser un mot de passe.

Les auteurs présentent délibérément cette menace comme l’équivalent, côté agent, du Cross-Site Scripting (XSS). La comparaison dépasse la rhétorique : le XSS a démontré il y a des décennies qu’entrelacer contenu de confiance et contenu non fiable sur une même page est dangereux, et le XSP fait resurgir exactement ce problème sous une forme où les correctifs classiques ne s’appliquent plus. Ce compte-rendu résume la contribution défensive ; il ne contient aucun payload réutilisable, car l’intérêt de l’article réside dans le modèle de confinement, pas dans l’injection.

Comment ça marche

Si les défenses anti-XSS ne se transfèrent pas, c’est parce que les payloads XSP ne sont pas du code exécutable. Ce sont du langage naturel et des images : les filtres d’entrée ne peuvent pas distinguer l’instruction de la donnée, et le contenu externe non fiable ne peut pas simplement être isolé du contexte du modèle.

L’observation centrale de l’article est ce que les auteurs appellent le problème d’enchevêtrement du web (web entanglement problem). Pour un agent outillé, une action comme « envoyer un e-mail » a une sémantique fixe et vérifiable. Pour un agent web, le même click(id) peut valider un achat, répondre à l’avis d’un attaquant ou interagir avec une publicité sponsorisée — c’est la structure de la page, et non l’action, qui porte le sens de sécurité. Pour dériver une politique sûre, la défense doit raisonner sur cette structure, mais celle-ci est enchevêtrée avec le contenu non fiable qu’elle cherche à contenir ; l’acte même de raisonner réexpose donc la défense à la manipulation.

Prismata résout cela avec deux idées. La dérivation dynamique de confiance trace le chemin critique depuis la racine du DOM jusqu’à chaque élément interactif ; les auteurs ont mesuré, sur plus de 1 500 sites parmi les plus visités et plus de 90 000 occurrences de contenu non fiable, que seulement 1,2 % de ce contenu se trouve réellement sur un tel chemin — la plupart des injections n’atteignent donc jamais la décision d’étiquetage. Pour les cas restants, ils empruntent la règle « no-read-down, no-write-up » du modèle d’intégrité de Biba (1977) afin de détecter les frontières structurelles — intitulés comme « Avis », attributs aria-label, noms de classe comme review-card — avant que le texte non fiable n’entre dans le contexte. Le confinement mécanique applique ensuite les étiquettes obtenues en caviardant le contenu et en limitant les actions autorisées de l’agent au périmètre de la tâche. Aucune de ces étapes n’exige que l’éditeur du site annote quoi que ce soit.

Pourquoi c’est important

Les agents web passent de la démonstration aux usages quotidiens, et ils agissent avec la session authentifiée de l’utilisateur : ils peuvent acheter, envoyer des messages, modifier des réglages, déplacer de l’argent. L’injection indirecte via le contenu d’une page devient alors un chemin direct vers l’exfiltration de données et la prise de contrôle de compte, et non une simple mauvaise réponse.

Le constat inconfortable qui sous-tend l’article est que les défenses au niveau du modèle — entraîner le modèle à résister à l’injection — continuent d’être contournées par des attaques adaptatives, et que la plupart des défenses existantes pour agents web relèvent précisément de cette catégorie qui fait confiance au modèle. Les contrôles au niveau de l’origine (domaines en lecture seule) et les schémas de planification anticipée comme CaMeL sont soit trop grossiers, soit en difficulté sur les tâches de navigation dépendantes des données. Nommer le XSP comme une classe permet aux défenseurs de raisonner sur toute la famille d’attaques, indépendamment de tel ou tel mécanisme de livraison.

Défenses

La prescription de l’article est le moindre privilège contextuel : contraindre à la fois ce que l’agent voit et ce qu’il peut faire, en fonction de la tâche, et l’appliquer dans une couche système située entre le navigateur et l’agent, plutôt que de compter sur le bon comportement du modèle. Dans leur évaluation sous WebArena, avec WASP et des tests de robustesse adaptatifs, cette approche a fait chuter le taux de succès moyen des attaques de 85,5 % à 0,7 %, relevé le taux d’accomplissement des tâches sous attaque de 4,5 % à 23,0 %, pour un coût modeste en utilité légitime (le succès des tâches passant de 29,9 % à 26,6 %).

Trois enseignements dépassent ce seul système. D’abord, traiter toute action d’agent web comme nécessitant une décision d’autorisation fondée sur la structure de la page, et non sur le jugement que le modèle porte sur le texte qu’il vient de lire. Ensuite, restreindre les capacités à la tâche : un agent chargé d’acheter un nœud papillon ne devrait avoir aucun chemin vers la réinitialisation de mot de passe ou les messages privés ; les boutons hors périmètre devraient être désactivés par construction. Enfin, les opérateurs de sites réduisent l’exposition de leurs utilisateurs en appliquant une hygiène web qui rend les frontières de confiance explicites — intitulés sémantiques, labels d’accessibilité, noms de classe de conteneurs clairs — ce qui, dans l’étude, a ramené les chemins résiduels non traités d’environ 0,1 % à 0,017 %.

Statut

ÉlémentDétail
TypeRecherche académique (proposition de défense), pas une vulnérabilité produit
SourcearXiv:2607.08147v1 [cs.CR], publié le 9 juillet 2026 (UC Berkeley)
Classe de menaceCross-Site Prompting (XSP) — injection indirecte via contenu de page non fiable
DéfensePrismata : moindre privilège contextuel via dérivation dynamique de confiance + confinement mécanique
Effet rapportéSuccès des attaques 85,5 % → 0,7 % ; utilité 29,9 % → 26,6 % (WebArena / WASP)
CVEAucune — pas de faille produit spécifique

Sources