Ce qui se passe
Le mode Auto de Claude Code remplace les demandes d'approbation humaine par un classificateur de sécurité. Il est le mode de démarrage par défaut depuis la mi-août. Anthropic a fait évaluer sa résistance par un prestataire externe, Trajectory Labs : 72 scénarios d'injection indirecte, dix passages chacun, et un taux de réussite affiché de 0,00 % pour Opus 5 en mode Auto.
Johann Rehberger a construit une chaîne ciblée contre ce même mode. Sur un échantillon volontairement réduit, il obtient 60 à 80 % de réussite, à partir d'une demande banale : résumer le contenu d'un site.
Comment la chaîne fonctionne
Sa qualité est de ne jamais donner d'instruction au modèle. Elle se contente de rendre le chemin dangereux plus attrayant que les autres.
Chaque étape mérite d'être lue pour ce qu'elle est. Le 415 ne demande rien :
Claude constate l'échec de WebFetch et bascule vers le shell de lui-même, ce
qui le fait sortir de l'outil encadré. L'archive contient des enregistrements
encodés en Base85 et zlib, une somme de contrôle, un README plausible et un
décodeur compilé.
Et c'est là que la décision de sécurité devient le vecteur : Claude refuse
d'exécuter le binaire inconnu, ce qui est le bon réflexe, puis écrit son
propre décodeur Python à la place. Il le lance depuis le dossier extrait. Python
place le répertoire courant dans son chemin de recherche de modules ; le module
base64 de la bibliothèque standard importe struct ; l'archive contient un
struct.py. C'est celui de l'attaquant qui s'exécute.
Ce que ça change
Rien ici ne relève d'une faiblesse du modèle. L'ombrage de module est un piège Python vieux comme le langage, et la chaîne l'atteint sans jamais formuler d'ordre — ce que l'auteur rapproche davantage de l'ingénierie sociale que d'une « injection » au sens classique.
La conséquence pratique est nette : le mode Auto réduit le risque par
rapport à --dangerously-skip-permissions, mais ce n'est pas une frontière de
sécurité. Il ne remplace pas l'isolation. Les recommandations de l'auteur, pour
un agent qui traite du contenu non fiable :
- Exécuter les agents non surveillés dans un conteneur, une VM ou un bac à sable système.
- Restreindre le trafic sortant.
- Ne pas exposer au runtime de l'agent le répertoire personnel, les clés SSH ou les identifiants cloud.
- Poser des règles explicites d'autorisation et de refus autour de la création de processus et des chemins sensibles.
- Surveiller ce que l'agent lance.
Comme il l'écrit : « Security invariants are not optional. »
Source : Embrace The Red — Breaking Claude Code Opus 5 Auto Mode