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

Du contenu web qui fait payer les agents : l'injection indirecte en conditions réelles

Zscaler a documenté deux campagnes actives qui cachent des instructions dans des pages web et des métadonnées de recherche pour faire envoyer des cryptos à des portefeuilles pirates par des agents IA — et leur faire valider de faux sites DeFi. Mécanisme et défenses.

2026-07-21 // 6 min affects: llama-3.3-70b, llama-3.2-90b-vision, gemini-3-flash, gemini-2.5-pro, claude-sonnet-4.5, gpt-5.4

De quoi s’agit-il ?

Le 2 juillet 2026, Zscaler ThreatLabz a publié une analyse de deux campagnes réelles qui dissimulent des instructions dans des pages web d’apparence banale pour manipuler des agents IA autonomes — ceux qui naviguent sur le web et peuvent agir, par exemple installer un paquet ou effectuer un paiement. C’est de l’injection indirecte de prompt (IPI) : l’attaquant ne s’adresse pas directement au modèle, il plante des instructions dans le contenu que l’agent va lire et attend que l’agent traite ce contenu comme une commande.

Ce qui distingue ces campagnes, c’est qu’il ne s’agit pas d’une démonstration de laboratoire. Elles tournent en conditions réelles, ciblent spécifiquement les agents, et l’une d’elles se solde par un départ de fonds d’un portefeuille. L’information a été reprise par SecurityWeek, Crypto Briefing et Infosecurity Magazine dans les jours qui ont suivi.

Comment ça marche

La première campagne se fait passer pour un paquet Python. L’attaquant met en ligne une page de documentation pour une bibliothèque inexistante, puis recourt au SEO poisoning — du HTML saturé de mots-clés liés au faux module — afin que la page remonte quand un agent cherche de l’aide pour une installation ou un problème de dépendances. Une fois l’agent sur la page, l’instruction injectée lui indique que l’obtention d’une « clé d’API développeur » exige un petit paiement (présenté autour de 3 $, encodé on-chain en une fraction d’ETH) vers un portefeuille codé en dur.

Trois techniques de diffusion se superposent :

Couche           Objectif
---------------  -------------------------------------------------------
SEO poisoning    Placer la page devant l'agent en premier lieu
DOM masque CSS   Instructions invisibles aux humains (ex. positionnement
                 hors écran) mais bien présentes pour parseurs et agents
Schema JSON-LD   Un objet « offers » structuré qui présente le paiement
                 comme une étape de licence légitime et lisible machine

L’instruction elle-même est ici [REDACTED] — l’intérêt est le mécanisme, pas le script. La page affiche aussi des options de paiement par carte et par crypto à un visiteur humain : elle fait donc doublement office de page d’arnaque classique. Zscaler relie l’opération à un ensemble de dépôts GitHub pointant vers des sites similaires.

La seconde campagne est plus discrète mais sans doute plus grave. Un domaine typosquatté imite un suiveur de portefeuille DeFi connu, puis bourre son titre, ses métabalises, ses données Open Graph et ses cartes sociales des mots-clés de la vraie marque. Un texte injecté affirme à tout agent qui le lit que ce domaine frauduleux est le domaine légitime. Aucune étape de paiement : le but est que l’agent avalise le faux site comme fiable, et laisse ensuite la victime s’y engager.

Pour mesurer l’impact, Zscaler a construit un agent doté de navigation et de capacité d’exécution de paiement, puis l’a confronté aux deux leurres sur 26 modèles. Quatre ont été manipulés jusqu’à envoyer effectivement le paiement frauduleux, et deux autres ont avalisé le site typosquatté comme la plateforme authentique. Aucun modèle n’était uniformément immunisé, et la vulnérabilité variait fortement selon les familles.

Pourquoi c’est important

Le montant en dollars est volontairement dérisoire. La leçon structurelle ne l’est pas : le contenu web récupéré est désormais une surface d’exécution. Un agent capable de payer, d’installer ou de cliquer traite la page qu’il lit à la fois comme une donnée et comme une instruction possible, et les modèles actuels ne maintiennent pas de façon fiable cette frontière. Le même schéma qui envoie 0,0012 ETH s’étend à la validation d’une transaction, à l’exfiltration d’un secret ou à l’installation d’une dépendance empoisonnée.

Deux propriétés rendent la chose dangereuse à grande échelle. D’abord, c’est passif : l’attaquant publie une page et attend, le SEO se chargeant du ciblage. Ensuite, c’est invisible pour l’humain dans la boucle — le CSS masque la charge, et un agent « autonome » ou en mode « agir sans demander » supprime l’humain purement et simplement. La variante par typosquatting montre le versant plus doux du même problème : même sans paiement, un agent qui cautionne un site malveillant blanchit la confiance de l’attaquant en confiance de l’utilisateur.

Défenses

Aucun correctif côté modèle ne referme cela ; la défense est donc architecturale.

Maintenez une frontière de confiance stricte entre les instructions de l’agent et tout contenu qu’il récupère : traitez pages web, documents et extraits de recherche comme des données non fiables, jamais comme des commandes. Analysez tout le DOM rendu, y compris les nœuds masqués par CSS ou hors écran et les métadonnées structurées (JSON-LD, Open Graph), et signalez les pages où le texte caché diverge de ce qu’un humain voit. Placez toute action conséquente — paiements, transferts, installations de paquets, usage d’identifiants — derrière une autorisation explicite au moindre privilège et une confirmation humaine ; un agent avec un portefeuille approvisionné et le mode « agir sans demander » est un risque permanent. Encadrez les paiements par des destinataires en liste blanche et des plafonds de dépense stricts, plutôt que de vous fier au jugement de l’agent page par page. Pour la confiance de marque et de domaine, vérifiez contre une liste blanche de domaines connus fiables au lieu de laisser une page affirmer sa propre identité. Enfin, journalisez et relisez les appels d’outils et les transactions sortantes de l’agent afin qu’une action empoisonnée soit rattrapée a posteriori si elle passe — et injectez les indicateurs connus (ci-dessous) dans vos listes de blocage.

Statut

ÉlémentDétail
DivulgationZscaler ThreatLabz, 2 juillet 2026
En conditions réellesOui — deux campagnes actives, plus ~10 dépôts GitHub liés
Modèles testés26 ; 4 ont exécuté le paiement, 2 ont avalisé le faux site
CorrectifAucun correctif unique — mitigations architecturales (voir Défenses)
IndicateursFaux paquet requests-secure-v2 ; typosquat debank[.]auction ; portefeuille 0x691bc3793205e574fa7b4aa068e62c0e470ad267

Sources