12 min de lecture
~11 minutes
La CSA publie une liste de 6 risques à modéliser avant de déployer Claude in Chrome en entreprise. Ce qui rend cette liste crédible, ce n’est pas sa rédaction ; ce sont les trois incidents publics qui l’ont précédée en neuf mois.
Trois incidents en neuf mois, et la même racine à chaque fois
Décembre 2025 : un chercheur de Koi Security signale à Anthropic qu’une page web quelconque peut injecter un prompt dans l’extension Claude comme si l’utilisateur l’avait tapé lui-même. Zéro clic, zéro dialogue de permission. C’est ShadowPrompt, corrigé en janvier 2026 dans la version 1.0.41.
Mai 2026 : LayerX publie ClaudeBleed. Cette fois c’est une extension Chrome sans aucune permission déclarée qui pilote Claude, lit Gmail, exfiltre du code depuis un dépôt GitHub privé et partage des fichiers Drive. Anthropic corrige partiellement en 1.0.70 ; LayerX contourne le correctif en basculant l’extension en mode privilégié, ce qui ne déclenche ni notification ni approbation.
Août 2026 : Zenity présente PleaseFix, une classe d’exploitation zéro clic qui touche cinq navigateurs agentiques. Contre Claude in Chrome, une seule demande de résumé de boîte mail suffit à exfiltrer Gmail, partager le Drive de la victime et prendre le contrôle de ses comptes Slack et X en récupérant les codes de vérification au passage.
Koi Security, LayerX, Zenity : trois équipes qui ne travaillent pas ensemble, sur trois mécanismes techniques sans rapport les uns avec les autres. Et le même résultat à chaque fois, un agent qui agit avec l’identité complète de l’utilisateur sur tout ce que celui-ci a laissé ouvert. C’est pour ça que la liste de la CSA m’intéresse, malgré mon allergie habituelle aux listicles écrits par des vendeurs.
Le correctif ferme le bug. Il ne réduit jamais le périmètre.
Les 6 risques, et ce que qu’il faut en retenir vraiment
La CSA a fait un choix éditorial interessant : aucun des six risques listés n’est une CVE. Ce sont des propriétés d’architecture, donc des choses qui restent vraies le lendemain du patch. Je les reprends dans l’ordre, avec quelques ajouts
1. Injection de prompt indirecte
L’attaquant place ses instructions dans du contenu que l’agent va lire de toute façon : texte invisible dans une page(blanc sur blanc), commentaire HTML, métadonnée d’image, corps d’un mail. Le modèle ne dispose d’aucun mécanisme fiable pour séparer « données à traiter » de « instructions à suivre ». C’est le point 1 du Top 10 OWASP pour les LLM depuis deux éditions, et j’ai déjà détaillé la taxonomie complète de ces techniques : plus de 200 variantes cataloguées, aucun correctif complet.
Anthropic communique honnêtement sur le sujet : sans mitigation, 23,6 % de taux de succès sur leurs tests d’attaque ciblée, ramené à 11,2 % avec les classifieurs et les confirmations d’action. Onze pour cent, ce n’est pas une note de sécurité. C’est une probabilité de compromission par tentative.
2. Héritage d’identité
L’agent n’a pas de credentials à lui. Il travaille dans vos sessions ouvertes : votre webmail, votre console cloud, votre forge, votre outil de ticketing, tous authentifiés simultanément dans le même profil Chrome. Aucun vol d’identifiant n’est nécessaire pour agir en votre nom ; il suffit de faire agir l’agent.
ClaudeBleed est la démonstration littérale de ce risque. Une extension à zéro permission déclarée n’avait besoin d’aucun token : elle envoyait des commandes, et Claude les exécutait avec les cookies de session déjà présents. Le sujet rejoint directement les 8 risques d’identité d’agent listés par la CSA en juillet ; en particulier le risque de combinaison toxique, où plusieurs faiblesses moyennes s’additionnent de façon exponentielle.
Note du PandaRedacteur : on a passé quinze ans à expliquer qu’un compte de service partagé, c’était mal. On vient de réinventer le concept, avec un LLM aux commandes et le profil Chrome de la DSI comme périmètre.
3. Autorité cross-origin
Aucune frontière n’a été franchie ici, contrairement au risque précédent ; c’est bien pire, elle n’existe simplement pas à cet endroit. La same-origin policy repose sur une hypothèse implicite jamais écrite dans la spec : c’est un humain qui décide de passer d’un domaine à l’autre, et cet humain a un contexte. Un agent lit une page sur un domaine et agit sur un autre dans le même tour de raisonnement, sans que rien dans le modèle de sécurité du navigateur ne s’y oppose. Personne n’a contourné quoi que ce soit ; le produit fait exactement ce pour quoi il a été conçu.
Il n’y a donc rien à réparer, dans un sens strict : la fonctionnalité consiste précisément à traverser cette frontière.
4. Fatigue d’approbation et dérive de plan
Les modes restrictifs se dégradent à l’usage. L’utilisateur bascule en mode permissif parce que les confirmations cassent son flux, l’agent navigue vers un domaine non approuvé, et le spam programmatique d’approbations finit d’user la vigilance. LayerX a documenté les deux techniques opérationnelles sur ClaudeBleed : l’approval looping, qui envoie la commande de confirmation en boucle, et la manipulation du DOM, qui renomme le bouton sensible pour que la victime approuve autre chose que ce qu’elle croit.
C’est le même mécanisme que celui qui m’a fait écrire sur le mode YOLO des agents IA, et qu’Amazon appelle sans détour la normalisation de la déviance quand ils expliquent pourquoi ils refusent de faire du human-in-the-loop leur contrôle principal. Un contrôle dont l’efficacité décroît à mesure qu’on l’utilise finit toujours par se transformer en rituel, et un rituel ne bloque rien.
5. Capacité excessive
La CSA a une formule que je reprends volontiers pour ce risque : des frontières molles, des garde-fous que le modèle suit. Concrètement, ça recouvre la lecture du trafic réseau et l’exécution de JavaScript arbitraire dans la page ; deux capacités de développeur, activées dans un contexte authentifié en continu. Anthropic bloque certaines catégories de sites (services financiers, contenu adulte, contenus piratés) et fait tourner des classifieurs sur les motifs d’instruction suspects.
Le verbe compte : le modèle suit ces garde-fous. Il ne s’y heurte pas. En sécurité, on appelle ça une préférence, pas un contrôle d’accès.
6. Confiance héritée
Ce sixième risque est celui qui est le moins souvent formalisé, et c’est aussi le plus élégant techniquement. La confiance ne s’arrête pas au code de l’éditeur : elle s’étend à tout ce qui tourne sur un sous-domaine considéré comme de confiance, y compris les composants tiers.
ShadowPrompt est exactement ça. Deux défauts ordinaires, chacun peu spectaculaire pris isolément :
- une allowlist d’origines trop permissive dans l’extension, qui acceptait n’importe quel sous-domaine
*.claude.aipour un message porteur de prompt ; - une XSS DOM-based dans un composant CAPTCHA Arkose Labs hébergé sur
a-cdn.claude.ai, qui rendait un champ contrôlé par l’attaquant viadangerouslySetInnerHTMLsans assainissement.
Chaînés, ils donnent une injection de prompt zéro clic déclenchée par la simple visite d’une page, sur une base de plus de trois millions d’utilisateurs. Le composant fautif n’était même pas du code Anthropic. Je retrouve là exactement la logique des 77 extensions Open VSX malveillantes : la surface d’attaque d’une extension, c’est l’union de tout ce à quoi elle fait confiance.
Analyse STRIDE
Je place la frontière de confiance à l’endroit qui compte : entre le contenu web arbitraire lu par l’agent et les sessions authentifiées auxquelles il a accès. Tout ce qui traverse cette frontière sans validation est le sujet.
| Catégorie STRIDE | Applicable | Explication |
|---|---|---|
| Spoofing | Critique | ShadowPrompt et ClaudeBleed reposent tous deux sur une usurpation d'origine : un sous-domaine tiers ou une extension quelconque se fait passer pour un émetteur légitime de commandes. L'extension authentifiait l'origine du message, jamais le contexte d'exécution qui l'avait produit. |
| Tampering | Élevé | La manipulation du DOM pour renommer un bouton d'approbation altère la représentation même du consentement. L'utilisateur valide une action différente de celle qui lui est décrite à l'écran. |
| Repudiation | Élevé | Les actions sont émises depuis les sessions légitimes de l'utilisateur, avec ses cookies et son adresse IP. Sans journalisation au niveau de l'agent, rien ne distingue un mail envoyé par la victime d'un mail envoyé par l'injection ; les logs applicatifs côté Gmail ou GitHub sont identiques. |
| Information Disclosure | Critique | C'est l'impact démontré à chaque incident : contenus Gmail, fichiers Drive, code source de dépôts privés, historique de conversation, jetons d'accès. PleaseFix va jusqu'à l'interception des codes de vérification pour enchaîner sur d'autres comptes. |
| Denial of Service | Faible | Peu pertinent ici. Un attaquant qui obtient l'exécution d'actions authentifiées a bien plus intéressant à faire que d'interrompre le service ; la suppression de données reste possible, mais elle relève de l'intégrité plus que de la disponibilité. |
| Elevation of Privilege | Critique | Le cœur du problème. Une extension à zéro permission déclarée atteint le niveau de privilège cumulé de toutes les sessions ouvertes de l'utilisateur. Et le passage en mode privilégié, qui neutralise les vérifications ajoutées en 1.0.70, ne demande ni approbation ni notification. |
Impact potentiel
| Dimension | Niveau | Conséquence concrète |
|---|---|---|
| Confidentialité | Critique | Boîte mail, fichiers Drive partagés vers un compte attaquant, code source de dépôts privés, historique de conversation avec l'agent, jetons d'accès. Le tout depuis une session légitime. |
| Intégrité | Critique | Envoi de mails au nom de la victime, modification de partages, suppression de données, commits sur une forge. L'approval looping et le renommage de bouton permettent d'obtenir une validation formellement valide. |
| Disponibilité | Modéré | Pas un objectif d'attaque en soi, mais la suppression de mails ou de fichiers reste dans les capacités démontrées, et la restauration n'est pas toujours possible. |
| Réputation | Élevé | Prise de contrôle de comptes Slack et X via les codes de vérification interceptés dans la boîte mail. Le rebond depuis un compte collaborateur légitime vers le reste de l'organisation est trivial. |
Exemple concret : une demande de résumé, et cinq comptes qui tombent
Je reprends ici le scénario PleaseFix contre Claude in Chrome, parce qu’il n’exige aucune sophistication de la part de la victime, et surtout aucune erreur de sa part.
- L’attaquant envoie un mail parfaitement ordinaire à la cible. Pas de pièce jointe, aucun lien à cliquer, rien qui déclenche un réflexe. Le mail contient simplement des instructions structurées à destination d’un agent, invisibles à la lecture humaine.
- La cible ouvre sa boîte mail le matin et demande à Claude : « résume-moi mes mails d’hier soir ». Une demande que je fais moi-même, sans y penser, plusieurs fois par semaine.
- L’agent lit les mails. Le corps du message piégé entre dans son contexte de travail avec exactement le même statut que la demande de l’utilisateur. Le modèle n’a aucun moyen structurel de distinguer les deux.
- Les instructions injectées poussent l’agent à charger un paquet NPM hébergé sur un CDN contrôlé par l’attaquant, ce qui contourne les mécanismes de sécurité qui filtraient les motifs connus.
- Le script s’exécute dans la session active de la victime. Il lit et exfiltre le contenu de Gmail, puis partage les fichiers Google Drive avec un compte attaquant.
- Il surveille ensuite la boîte mail pour intercepter les codes de vérification, et s’en sert pour prendre le contrôle des comptes Slack et X associés à cette adresse.
À aucun moment la victime ne clique, ne télécharge quoi que ce soit ou ne saisit un mot de passe. Sa seule action, dans toute la chaîne, c’est d’avoir demandé un résumé.
Note du PandaRedacteur : la phrase « l’utilisateur doit rester vigilant » n’a plus aucun sens ici. Vigilant devant quoi ? Le mail est invisible, l’action est légitime, et la victime lit un résumé parfaitement correct pendant que son Drive part en partage public.
C’est structurellement la même histoire que NemoClaw, où une page web piégée suffit à prendre le contrôle d’un agent Ollama local. Le contenu lu par un agent est du code exécutable, tant qu’on n’a pas prouvé le contraire.
Ce qu’il faut mettre en place avant d’autoriser le déploiement
Ces mesures se rangent en deux familles : celles qui réduisent le périmètre, et celles qui restaurent la traçabilité. Les deux sont nécessaires, et aucune ne relève du correctif éditeur ; je détaille les deux familles complètes, avec les commandes et les points de contrôle précis, dans la version longue envoyée d’abord à mes abonnés payants.
Au Menu, vous retrouvez la suite :
- les 4 mesures concrètes pour réduire le périmètre (profil navigateur dédié, séparation des identités, interdiction du mode autonome, allowlist explicite par site) ;
- les 4 mesures pour restaurer la traçabilité (journalisation au niveau agent, détection du motif cross-origin, ré-authentification pas à pas, tests continus des chemins d’injection) ;
- mes deux notes sur ce qui se détecte réellement, et ce qui ne se détecte pas ;
La liste complète des mitigations part d'abord aux abonnés payants de ma newsletter Substack, avant d'être publiée intégralement ici.
📚 Quelques références pour aller plus loin
- Top 6 Claude in Chrome Security Risks to Model Before You Roll It Out (Cloud Security Alliance)
- Claude Extension Flaw Enabled Zero-Click XSS Prompt Injection via Any Website (The Hacker News)
- Analyse technique de la chaîne ShadowPrompt (Cyber Security News)
- ClaudeBleed : des extensions malveillantes volent Gmail et Drive (GBHackers)
- Zero-Click AI Browser Hacking : PleaseFix contre Claude et ChatGPT Atlas (SecurityWeek)
- Claude for Chrome : le modèle de permissions et les taux d’attaque publiés par Anthropic
- OWASP LLM01 : Prompt Injection
- La fiche outil Claude in Chrome sur ma page DevSecOps Tools
- 8 risques d’identité d’agent IA que la CSA veut voir sur le bureau de tout RSSI
- Prompt injection 2026 : +340% en un an, plus de 200 techniques cataloguées
- NemoClaw : une page web piégée suffit pour prendre le contrôle d’un agent Ollama local
- Pourquoi Amazon se méfie du human-in-the-loop pour gouverner ses agents IA
- Mode YOLO des agents IA
- Agent harness : le code autour du modèle qui décide si votre agent est fiable ou pas
- 77 extensions Open VSX, un domaine enregistré 11 jours avant, et vos identifiants CI/CD dans la nature
- Le Guide CISO/Agentique de Juillet 2026