---
title: "Bug Claude Code #74066 : Des Utilisateurs Signalent une Fuite de Contexte Entre Workspaces sur Sonnet 5, Anthropic N'a Pas Encore Répondu"
description: "Un bug ouvert déposé contre Claude Code le 2026-07-04 par un utilisateur [Enterprise ZDR](https://docs.anthropic.com/en/docs/build-with-claude/zero-data-retention) décrit une session de travail sur Sonnet 5 qui commence soudainement à faire référence à une construction de temple Minecraft non liée, puis persiste dans la mauvaise tâche dans son récapitulatif. Le rapporteur (GitHub : [@milesrichardson-edb](https://github.com/milesrichardson-edb), issue [anthropics/claude-code#74066](https://github.com/anthropics/claude-code/issues/74066)) est sur Enterprise Zero Data Retention, le niveau qu'Anthropic présente spécifiquement comme isolé par session. Le triage sur le JSONL de session locale du rapporteur à `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl` montre que le texte fuité n'est pas dans la transcription, ce qui exclut une fuite de contexte locale par chevauchement de fichier. Quatre autres utilisateurs dans les commentaires (avec des historiques de travail remontant à l'an dernier) décrivent un comportement quasi identique sur Claude Code, Claude Mobile et Claude deep research. Le fit architectural le plus plausible est un état de cache KV partagé dans l'inférence ([selon @yv3nne dans les commentaires](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448776)), mais aucun ingénieur d'Anthropic n'a commenté l'issue dans les 22 heures depuis son dépôt, et l'issue a atteint le sommet de [Hacker News](https://news.ycombinator.com/item?id=42481789) le 2026-07-04. Le ton dans le fil est partagé : la moitié suspectant une vraie réutilisation de cache plateforme, l'autre moitié suspectant une [hallucination spécifique à Sonnet 5 déclenchée par un lexer Pygments](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880334711). Les deux lectures sont crédibles."
date: 2026-07-05
image: "/images/heroes/2026-07-05--claude-code-74066-cross-workspace-context-leak.png"
author: lschvn
tags: ["security", "ai", "tooling"]
tldr:
  - "[anthropics/claude-code#74066](https://github.com/anthropics/claude-code/issues/74066), déposé le 2026-07-04 à 02:04 UTC par un utilisateur d'Anthropic Enterprise [ZDR](https://docs.anthropic.com/en/docs/build-with-claude/zero-data-retention) sur Claude Code 2.1.199, décrit une session Sonnet 5 qui commence à retourner du contenu sur la construction d'un temple Minecraft d'un utilisateur non lié, fait référence à une « pollution antérieure » qui n'est pas dans la session locale, puis embarque la mauvaise tâche dans son récapitulatif. Le rapporteur, [@milesrichardson-edb](https://github.com/milesrichardson-edb), exclut une fuite de contexte locale (les mots fuités sont introuvables dans `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl`) et un fichier [lexer Pygments appelé `minecraft.py`](https://github.com/pygments/pygments/blob/master/pygments/lexers/minecraft.py) qui remonterait accidentellement, puisque seule la chaîne `minecraft.py` apparaît dans ses transcriptions, pas `bricks` ni `temple`."
  - "[Quatre autres commentateurs](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880334711) décrivent le même motif général sur Claude Code, Claude Mobile et Claude deep research sur Sonnet 5 : des fragments de prompt de sessions clairement non liées remontent dans les réponses de tour et survivent à la compaction. [@arbirk](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448938) signale un avis fabriqué « MCP servers need auth », un dump de `CLAUDE.md` non lié, et de fausses instructions « Plan mode is active » dans une seule réponse. [@phonkd](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880453726) signale que Claude cite l'emplacement d'un magasin pour un ami qui n'a jamais été mentionné dans aucun chat. [@noperator](https://noperator.dev/posts/pelicant) lie un [incident antérieur sur deep research de juin 2026](https://noperator.dev/posts/pelicant) où Anthropic attribuait la même surface à un rendu de scaffolding interne, pas à une fuite de confidentialité."
  - "Le fit architectural que pointent plusieurs commentateurs est un état de cache KV partagé sur le chemin d'inférence. Le cluster d'inférence d'Anthropic réutilise les caches de prompt pour le coût et la latence ; un cache hit sur Sonnet 5 sur un préfixe d'un autre utilisateur qui a la même forme de tokenization que le prompt du rapporteur expliquerait la remontée de fragments cross-tenant sans qu'aucun chemin de code n'ait besoin de lire intentionnellement les données d'un autre tenant. Aucun ingénieur d'Anthropic n'a commenté l'issue depuis le dépôt, et [Claude Code 2.1.200](https://github.com/anthropics/claude-code/releases/tag/v2.1.200) et [2.1.201](https://github.com/anthropics/claude-code/releases/tag/v2.1.201), publiés le 2026-07-03 après l'ouverture de la fenêtre de rapport 74066, ne listent aucun fix d'isolation de cache dans leurs release notes. Le signal opérationnel le plus fort du fil : au moins deux des cinq rapports sont survenus après un cache miss suivi de la première réponse dans la nouvelle session."
faq:
  - question: "Qu'est-ce que le bug Claude Code 74066 ?"
    answer: "[anthropics/claude-code#74066](https://github.com/anthropics/claude-code/issues/74066) (ouvert, déposé le 2026-07-04 à 02:04 UTC par [@milesrichardson-edb](https://github.com/milesrichardson-edb)) décrit une session Claude Code 2.1.199 sur Sonnet 5 où le modèle retourne du contenu sur la construction d'un temple Minecraft d'un utilisateur non lié, fait référence à une « pollution antérieure » qui n'est pas dans la transcription JSONL locale à `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl`, et embarque la mauvaise tâche dans son récapitulatif. Le rapporteur est sur Enterprise ZDR (Zero Data Retention). Le bug est ouvert au 2026-07-05 avec 14 commentaires, aucun commentaire d'ingénieur d'Anthropic, et les labels `bug`, `platform:macos`, `area:core`, `area:security` appliqués par `github-actions[bot]`."
  - question: "Anthropic a-t-elle confirmé qu'il s'agit d'une vraie fuite cross-account ?"
    answer: "Non. Au 2026-07-05 05:00 UTC, aucun ingénieur d'Anthropic n'a commenté l'issue. La déclaration publique antérieure la plus proche d'Anthropic date de [juin 2026, en réponse au rapport de Caleb Gross sur noperator.dev concernant Claude deep research](https://noperator.dev/posts/pelicant), qui surfacaient des prompts non liés dans les titres de tâches deep-research avec une symptomatique de surface similaire. Anthropic a dit à Gross qu'il s'agissait de scaffolding interne (system prompt, tool JSON-Schemas, userPreferences, web_search JSON) rendu dans l'UI, les exemples visibles par l'utilisateur étant des requêtes d'exemple rédigées par Anthropic, pas une violation de confidentialité. Ce cadrage n'a pas encore été appliqué à 74066, et la configuration du rapporteur 74066 (Enterprise ZDR) est un niveau d'isolation plus strict que le niveau Claude.ai deep-research."
  - question: "Est-ce que ça ne pourrait pas être juste une hallucination de Sonnet 5 ?"
    answer: "Oui, et plusieurs commentateurs le défendent. [@DevBrent](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880441132) fait remarquer qu'un fichier lexer Pygments à [`pygments/lexers/minecraft.py`](https://github.com/pygments/pygments/blob/master/pygments/lexers/minecraft.py) suffit pour qu'un appel d'outil listant les fichiers d'un environnement virtuel Python fasse remonter le token littéral `minecraft` dans les transcriptions. Un modèle qui capte `minecraft` comme token de contexte et commence à faire des associations libres pourrait plausiblement inventer un « temple Minecraft » par complétion de pattern, sans aucune implication cross-tenant. Le contre-triage du rapporteur (aucune occurrence de `bricks` ou `temple` dans le JSONL, plus le fait que la session de l'utilisateur n'a rien à voir avec Minecraft) est ce qui rend la lecture par hallucination faible mais pas nulle."
  - question: "Que couvre réellement la garantie Enterprise ZDR ?"
    answer: "Anthropic documente [Zero Data Retention / Enterprise ZDR](https://docs.anthropic.com/en/docs/build-with-claude/zero-data-retention) comme le niveau où ni les prompts, ni les réponses, ni les données de session ne sont retenus sur l'infrastructure d'Anthropic après le retour de la réponse, et où les prompts ne sont pas utilisés pour l'entraînement ou l'amélioration. ZDR est le niveau d'isolation le plus fort vendu par Anthropic. Le rapporteur de 74066 est sur ce niveau, ce qui fait d'une fuite littérale « le prompt complet d'un autre tenant m'est envoyé » une violation du contrat d'isolation et pas un bug de rendu de routine. Même la lecture plus faible (réutilisation de forme de préfixe de cache KV) resterait incohérente avec la position ZDR, parce que le résultat visible par l'utilisateur est indistinguishable d'une fuite de session."
  - question: "Ça pourrait être une injection MCP server / hook plutôt qu'une fuite côté inférence ?"
    answer: "Possiblement, et le nouveau symptôme dans [le rapport d'@arbirk](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448938) (un avis fabriqué « MCP servers need auth », un dump de `CLAUDE.md` non lié, et de fausses instructions « Plan mode is active » disant à l'agent de s'arrêter) est cohérent avec le pipeline de preprompt qui tire les mauvaises instructions. Claude Code charge maintenant les configs de serveurs MCP et les fichiers d'instructions projet `CLAUDE.md` depuis les chemins `~/.claude/projects/<encoded-cwd>/`, et la frontière du cwd encodé en chemin est un point connu de collision d'empreinte : le rapporteur lance des sessions dans un répertoire qui contient une config `.claude/` pour un projet non lié. C'est un mode de défaillance séparé de la fuite de cache côté inférence, mais il produirait le même symptôme visible par l'utilisateur, et les propres chemins de logs de Claude Code ne sont pas conçus pour désambiguïser de quel préfixe venaient les instructions surfacées."
  - question: "Est-ce une violation de données sur laquelle je dois agir ?"
    answer: "Il n'y a aucune preuve, dans aucun des cinq rapports publics, que les PII, code, secrets ou contenu de chat personnel d'un autre utilisateur ont été exfiltrés vers le rapporteur. Ce qui remonte sont des fragments de prompt : une description de temple Minecraft, une leçon de calligraphie hébraïque, un emplacement de magasin pour un ami. Cela est cohérent à la fois avec une surface cross-tenant et avec le type de requêtes d'exemple rédigées par Anthropic dont Anthropic a dit à [noperator.dev](https://noperator.dev/posts/pelicant) qu'elles sont intégrées au scaffolding d'agent. La demande côté utilisateur est double : les clients Enterprise ZDR doivent attendre une déclaration d'Anthropic avant de supposer que leurs frontières de session tiennent ; tous les utilisateurs sur Sonnet 5 doivent vérifier leurs propres JSONLs de session contre toute fuite visible, puisque le bug est non confirmé et pas encore reconnu comme bug par Anthropic."
---

Le 2026-07-04 à 02:04 UTC, un utilisateur de Claude Code a déposé [anthropics/claude-code#74066](https://github.com/anthropics/claude-code/issues/74066) décrivant une session sur Claude Code 2.1.199 exécutant [Sonnet 5](/articles/2026-07-01--claude-sonnet-5-default-model-claude-code-1m-context) qui a commencé à retourner du texte sur une construction de temple Minecraft non liée. Le rapporteur, [@milesrichardson-edb](https://github.com/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 pour `bricks`, `temple`, `minecraft` en 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`](https://github.com/pygments/pygments/blob/master/pygments/lexers/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 :

1. [@arbirk](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448938) décrit une seule réponse qui contenait un avis fabriqué « MCP servers need auth », un dump de `CLAUDE.md` non 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.
2. 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é.
3. [Le writeup noperator.dev de juin 2026 sur deep research](https://noperator.dev/posts/pelicant) 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](https://docs.anthropic.com/en/docs/build-with-claude/zero-data-retention) 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](https://github.com/anthropics/claude-code/issues/74066#issuecomment-4880448938) 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](/articles/2026-07-03--claude-code-2-1-199-stacked-skills-subagent-errors)). 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](https://github.com/anthropics/claude-code/releases) (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 dialogue `AskUserQuestion` ne 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

1. **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.
2. **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 de `claude-code`. [2.1.200 et 2.1.201](https://github.com/anthropics/claude-code/releases) ne listent aucun fix de ce type.
3. **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](https://github.com/anthropics/claude-code/security/advisories) pour les bugs confirmés (les entrées récentes incluent [GHSA-7835-87q9-rgvv](https://github.com/anthropics/claude-code/security/advisories/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.
4. **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.
5. **Un post-mortem dans le style de [Project Glasswing](/articles/2026-04-07--anthropic-project-glasswing-ai-finds-zero-days-faster-than-humans).** 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.
