Le 2026-07-04 à 02:04 UTC, un utilisateur de Claude Code a déposé anthropics/claude-code#74066 décrivant une session sur Claude Code 2.1.199 exécutant Sonnet 5 qui a commencé à retourner du texte sur une construction de temple Minecraft non liée. Le rapporteur, @milesrichardson-edb, est sur Anthropic Enterprise Zero Data Retention (ZDR), le niveau d'isolation où les prompts ne sont pas retenus et ne sont pas utilisés pour l'entraînement. Au 2026-07-05, l'issue avait 14 commentaires, aucun engagement d'ingénieur d'Anthropic, et les labels bug, platform:macos, area:core, area:security appliqués. Le fil a aussi remonté cinq rapports liés remontant à plus d'un an, sur Claude Code, Claude Mobile et Claude deep research.
Ce que le rapporteur a réellement vu
Le corps du bug est un rapport d'environ 200 mots avec une capture d'écran jointe et une transcription OCR d'un suivi. Le résumé fonctionnel :
- Une session Claude Code sur Enterprise ZDR est en pleine tâche sur un projet d'analyse de données (fichiers CSV pour un dataset non lié).
- L'agent s'arrête en plein milieu de la tâche, demande à l'utilisateur quel type de briques il veut pour son temple Minecraft, et affirme dans le récapitulatif qu'il « construit un temple Minecraft ».
- L'utilisateur n'a aucun projet Minecraft. La trajectoire mentionne une « pollution antérieure » qu'il n'a pas écrite. La transcription JSONL locale à
~/.claude/projects/<encoded-cwd>/<session-id>.jsonl(le log par session, par répertoire de lancement que Claude Code écrit sur macOS, Linux et Windows sous WSL) est nettoyée par grep pourbricks,temple,minecraften dehors d'une référence de nom de fichier errante et de l'OCR du symptôme lui-même. - Le rapporteur avait aussi travaillé sur un répertoire
.claude/-context différent dans le même arbre de lancement plus tôt dans la journée, mais l'inadéquation ne se mappe pas sur le symptôme (ces messages concernaient un fix de point non lié, pas Minecraft).
Le rapporteur exclut explicitement deux explications évidentes : la pollinisation croisée des logs locaux (le JSONL est par session et nettoyé par grep), et un fichier lexer Pygments appelé minecraft.py qui fuiterait via une sortie d'outil (seul le nom de fichier apparaît, jamais bricks ou temple).
Les cinq rapports corroborants
Au 2026-07-04 17:08 UTC, cinq commentaires publics sur l'issue décrivent un comportement similaire. Trois observations resserrent le motif :
- @arbirk décrit une seule réponse qui contenait un avis fabriqué « MCP servers need auth », un dump de
CLAUDE.mdnon lié, et de fausses instructions « Plan mode is active » disant à l'agent de s'arrêter et d'utiliser des outils qu'il n'a pas. Trois couches d'instructions système hors bande dans la même réponse d'un seul utilisateur. - Le rapporteur dépose le même symptôme sur Claude Mobile dans le même compte Enterprise en quelques heures, avec le facteur commun étant Sonnet 5 et « première réponse après plus de 5 minutes (cache miss) ». Cache miss + premier tour est la forme de préfixe la plus susceptible de faire trébucher un cache d'inférence partagé par clé.
- Le writeup noperator.dev de juin 2026 sur deep research est l'incident public antérieur avec la même surface : les titres de tâches deep-research fuient du contenu non lié (leçons de calligraphie hébraïque, « Bananas: A Comprehensive History »). Anthropic a dit à Gross qu'il s'agissait de scaffolding interne rendu dans l'UI, les fragments visibles par l'utilisateur étant des requêtes d'exemple rédigées par Anthropic plutôt que le prompt d'un autre utilisateur.
Le fit architectural
L'hypothèse qui tient sans que la stack d'Anthropic ait besoin de violer consciemment l'isolation est la réutilisation du cache KV sur le chemin d'inférence. Anthropic, comme tout fournisseur de modèles de pointe en 2026, exécute un cache de prompts pour éviter de recalculer de longs préfixes système pour des clients récurrents. La clé du cache est un hash des tokens du préfixe plus l'identifiant du tenant ; une collision de hash sous charge (cache miss Sonnet 5 + premier tour, spécifiquement) ferait remonter dans la fenêtre de contexte effectif du modèle le préfixe caché d'un autre tenant. Aucun chemin de code n'a besoin de « lire les données d'un autre tenant » ; le cache KV renvoie juste les activations du mauvais état.
Ceci n'est pas vérifié. Le commentaire de @yv3nne dans le fil signale le même motif ; @noperator le signale explicitement. Anthropic n'a pas commenté, et la documentation cloud-cache d'Anthropic est cohérente avec la réutilisation mais ne fixe pas comment les lookups de cache filtrent contre les frontières de tenant dans les scénarios de cache partagé. La position Enterprise ZDR telle que documentée est que les prompts ne sont pas retenus ; si une entrée de cache KV est replayée par un autre tenant sur un cache hit, c'est fonctionnellement indistinguishable d'un événement de rétention pour le destinataire.
Un second fit architectural est l'injection MCP / CLAUDE.md. Claude Code charge les configs de serveurs MCP et les fichiers d'instructions projet depuis une clé dérivée du chemin. Le rapporteur travaille dans un répertoire de lancement qui contient une config .claude/ pour un projet non lié ; les collisions de chemin sur la clé cwd encodée produiraient exactement le type de symptôme « mauvaises instructions, contexte non lié » que @arbirk décrit. C'est un mode de défaillance séparé qui surfacerait à l'intérieur d'une session d'un seul tenant sans franchir aucune frontière de tenant, mais son symptôme visible par l'utilisateur est le même.
Pourquoi c'est une news pour les lecteurs de typescript.news
Claude Code est l'outil de codage IA dominant pour l'écosystème TS/JS en 2026 (il est le défaut dans les propres docs d'Anthropic, dans les exemples d'agents de Vercel, et dans la série Claude 2.x qui a été livrée à travers juin et juillet). Les clients Enterprise ZDR dans notre audience incluent des équipes exécutant des chaînes de build propriétaires, des secrets de monorepo et du code sous contrat sous NDA. Les signaux de titre comptent pour cette audience :
- Le contrat d'isolation sur le niveau le plus élevé est ce qui a besoin d'une déclaration du vendeur, pas le niveau API de routine.
- Le symptôme de surface est des prompts non liés, pas des PII, donc le pire cas est « votre session a reçu le préfixe caché de quelqu'un d'autre », ce qui est mauvais mais n'est pas « vos secrets sont sortis ».
- Les release notes pour Claude Code 2.1.200 et 2.1.201 (publiées le 2026-07-03) ne listent aucun fix d'isolation de cache ; ce que 2.1.200 a changé (le mode de permission par défaut est passé à
manual, la boîte de dialogueAskUserQuestionne continue plus automatiquement par défaut, plusieurs fixes de crash de daemon) n'est pas lié. - Le motif le plus rapide que les rapporteurs décrivent (cache miss plus réponse de premier tour) est aussi la forme d'interaction la plus commune pour les workflows de codage IA : longue session, inactif, reprise, première nouvelle requête.
Ce qu'il faut surveiller la semaine prochaine
- Le premier commentaire d'ingénierie d'Anthropic sur 74066. Soit en reconnaissant le bug, soit en demandant de la télémétrie supplémentaire, soit en transférant vers une adresse de divulgation de sécurité resserrera ou clôturera la plupart des spéculations. Au 2026-07-05 05:00 UTC, le fil n'a aucun engagement d'équipe.
- Une release qui mentionne l'isolation de cache, le path-binding MCP ou la fingerprinting de tokenization. Le fix pertinent atterrirait dans le hashing de frontière de chemin de
turbod, dans le lookup de cache d'inférence, ou dans l'assemblage de contexte pré-tour declaude-code. 2.1.200 et 2.1.201 ne listent aucun fix de ce type. - Si Anthropic publie un avis de sécurité ou GHSA pour la même surface. Anthropic publie des entrées GHSA sur le dépôt claude-code pour les bugs confirmés (les entrées récentes incluent GHSA-7835-87q9-rgvv sur l'évasion de sandbox via confusion de chemin git worktree). Si 74066 est la même surface, le chemin GHSA est la venue publique.
- Un deuxième cluster de rapports depuis des surfaces non-Claude-Code. Le fil a déjà des rapports pour Claude Code, Claude Mobile et Claude deep research. Si le même symptôme commence à remonter sur le chat Claude.ai, le goulot d'étranglement est côté inférence, pas côté Claude-Code.
- Un post-mortem dans le style de Project Glasswing. Le playbook d'Anthropic pour les trouvailles de sécurité spécifiques à l'IA en 2026 est un writeup style Glasswing ; c'est à quoi ressemblent les prochains jours si le rapport est confirmé.
D'ici là, la demande opérationnelle est la demande ennuyeuse : ne collez pas de secrets dans une session Sonnet 5 sur un chemin qui entre en collision avec une config .claude/ d'un autre projet ; sur Enterprise ZDR, ne supposez pas que le contrat du niveau est applicable tant qu'Anthropic ne confirme pas qu'il l'est ; et traitez tout fragment de prompt que vous ne pouvez pas justifier comme un événement candidat de collision de cache, pas comme une hallucination à ignorer.



