Claude Code v2.1.248 a été publiée à 22:12:20 UTC le 27 août. Parmi une quarantaine d’entrées du journal des modifications figure celle-ci, mot pour mot : "Fixed /ultrareview and locally seeded cloud sessions uploading uncommitted prod.env-style and *.tfvars files, or to editor swap, temp, and backup copies of credential files (e.g. key.pem.tmp, id_rsa.swo); they now stay on your machine."
Ce que sont ces noms de fichiers
Un prod.env non validé contient des identifiants de production. Un fichier .tfvars contient des variables Terraform — souvent des clés d’accès cloud et des secrets d’infrastructure. id_rsa.swo est un fichier d’échange Vim pour une clé SSH privée. Ce ne sont pas des artefacts accessoires ; ce sont précisément les fichiers qu’un développeur tient à l’écart du contrôle de version parce qu’ils contiennent des secrets.
L’autre entrée en tête d’affiche
La même version ajoute --restricted (ou CLAUDE_CODE_RESTRICTED=1), qui "removes the built-in tools that run commands or code and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project and local settings files." Toujours dans 2.1.248 : la messagerie inter-session s’étend à Bedrock, Vertex et Foundry, la description de l’outil Workflow passe d’environ 5,7k tokens à 1k, et un correctif traite un raté de cache de prompt survenant "roughly once an hour in long sessions" après un renouvellement de jeton OAuth.
Ce que la lecture habituelle ignore
Le problème de cadrage, c’est l’absence de cadrage. Un correctif d’exfiltration de secrets a été publié comme une puce sans numéro — pas d’avis de sécurité, pas d’identifiant GHSA, pas de CVE, pas de notification "action required", pas de date d’introduction divulguée ni de plage de versions affectées. Les utilisateurs concernés n’ont aucun moyen de savoir si leurs clés ont quitté la machine, ni pendant combien de temps.
Deuxièmement, le détail .swo et .tmp identifie la classe de bug : l’uploader filtrait les noms canoniques des identifiants, mais pas les variantes générées par l’éditeur placées à côté. Il s’agit d’un échec de denylist, donc d’un problème de conception, présenté ici comme un correctif isolé.
Troisièmement, --restricted est un drapeau de durcissement, pas un bac à sable. Lisez bien la formulation : il supprime des outils et ignore des fichiers de réglages. Il s’agit d’une réduction des capacités dans le processus, pas d’une frontière au niveau du système d’exploitation — et le nom incite à croire à un confinement. Il ignore aussi silencieusement les réglages utilisateur, projet et locaux, un changement de comportement qui surprendra quiconque l’active en s’attendant seulement à la suppression d’outils.
Enfin, le rythme masque la gravité : avec trois versions en 26 heures, et 2.1.250 étiquetée seulement "Bug fixes and reliability improvements," un correctif pertinent pour la sécurité devient indiscernable du bruit de routine.
