Claude Code 2.1.223 : quatre bypass de permission colmatés, /review fusionne dans /code-review
La 2.1.223 corrige quatre façons distinctes de contourner les prompts de permission (Bash, Unicode invisible, sandbox de workflow, bypassPermissions), fusionne /review dans /code-review et durcit l'application de la fenêtre de contexte 1M. Ce qui compte dans cette release du 6 août.
La version 2.1.223 de Claude Code est sortie le 6 août. Quatre correctifs de sécurité touchent directement les prompts de permission et le bac à sable, /review disparaît en tant que commande à part entière, et la gestion de la fenêtre de contexte 1M se durcit. Voici ce qui compte.
Sécurité : quatre façons de contourner les prompts de permission, colmatées d’un coup
Le lot le plus dense de cette release :
- Bash : une commande habilement construite pouvait cacher une partie d’elle-même aux vérifications de permission. Le classifieur ne voyait qu’un fragment de ce qui allait réellement s’exécuter.
- Boîte de dialogue d’approbation : une commande truffée de tabulations ou de caractères Unicode invisibles pouvait masquer une partie de son contenu dans le prompt affiché à l’utilisateur. Tu approuves ce que tu vois, pas ce qui tourne réellement.
- Workflows : un script de workflow pouvait utiliser un
import()dynamique pour exécuter du code en dehors du bac à sable prévu pour les workflows. bypassPermissions: une définition d’agent en modebypassPermissionsignorait la politique d’organisation qui désactive ce mode. Une entreprise qui avait coupébypassPermissionsau niveau admin pouvait donc se le voir réintroduit par un agent défini localement.
Les quatre corrections vont dans le même sens : ce qui est présenté à l’utilisateur, ou à l’admin, doit correspondre à ce qui s’exécute réellement. Si tu tournes en acceptEdits ou en mode auto sur des commandes générées dynamiquement (scripts, workflows, agents tiers), ces correctifs ferment des trous réels, pas des scénarios de laboratoire.
/review disparaît, absorbée par /code-review
Changement de réflexe à noter tout de suite : /review devient un simple alias de /code-review, qui revoit le diff courant ou une pull request avec /code-review <niveau> <numéro-pr>. Pour une revue cloud approfondie, c’est /code-review ultra.
Autre détail pratique : si tu appelles /code-review sans préciser de niveau, il réutilise maintenant le dernier niveau que tu as tapé, au lieu de retomber sur un défaut. Pour en changer, il suffit de retaper un niveau explicite, par exemple /code-review high.
La fenêtre de contexte 1M mieux tenue
Deux changements liés, utiles si tu bosses avec des modèles à fenêtre native 1M ou des IDs de modèle non standards :
CLAUDE_CODE_DISABLE_1M_CONTEXTs’applique désormais à tout modèle Claude avec une fenêtre native 1M via l’auto-compaction, et plus seulement à une liste figée. Un avertissement au démarrage apparaît maintenant si l’auto-compaction ne parvient pas à tenir la session sous 200K.- L’auto-compaction maintient aussi les sessions tournant sur des IDs de modèle non reconnus dans la fenêtre de contexte supposée, au lieu de les laisser grossir sans limite. Pour retrouver l’ancien comportement, la variable
CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1existe.
Ce qui change ton quotidien
- Marketplaces de plugins :
strictKnownMarketplacesetblockedMarketplacesacceptent maintenant des entrées joker du type"owner/*", pour autoriser ou bloquer d’un coup tous les dépôts marketplace d’une org GitHub. - Modèle restreint pour un subagent : un avertissement s’affiche désormais quand un agent de workflow, un skill forké, une slash command ou un agent d’arrière-plan repris demande un modèle que la politique d’organisation restreint, et que le modèle du parent tourne à la place.
/teleporten session cloud : un indice s’affiche maintenant pour continuer en local avecclaude --teleport <session id>.- Managed settings : les réglages poussés par le serveur ne désactivent plus tout le bloc
envd’unmanaged-settings.jsonlocal ou d’un profil MDM. La fusion se fait maintenant clé par clé. - Passerelles de modèles : la découverte de modèles ne masque plus les modèles Claude enregistrés sous un ID préfixé par le fournisseur, du type
vertex_ai/claude-*oubedrock/anthropic.claude-*. modelOverrides: une clé qui n’est pas un ID de modèle Anthropic valide n’est plus traitée à tort comme l’ID canonique du modèle de la session. Les clés inconnues sont maintenant ignorées, comme documenté.
Le reste, en vrac utile
- Commandes en bac à sable qui ne démarraient plus sur Linux quand
sandbox.filesystem.denyWritecouvrait le répertoire de travail : corrigé. - Reprise de session après un
/cden cours de session qui revenait vide : corrigé. - Agents d’arrière-plan forkés qui restaient bloqués sur “already resuming” pour le reste de la session quand la reconstruction du prompt parent du fork échouait à la reprise : corrigé.
- Session reprise qui échouait à chaque tour, ou laissait l’app interactive sur un écran d’erreur figé, quand son historique contenait une pièce jointe de diagnostics malformée : corrigé.
- Blocage rare en analysant une sortie inhabituelle de
git push: corrigé.
Faut-il mettre à jour
Oui, sans traîner : quatre bypass de permission réels colmatés dans la même release, ça ne se voit pas souvent. Prévois aussi de retaper tes réflexes /review en /code-review, et vérifie ton usage de bypassPermissions si ton organisation compte dessus pour verrouiller les agents.
Source : changelog officiel Claude Code.
Pierre Rondeau
Développeur et indie builder. Je construis des produits et automatisations avec l'IA. Créateur de Claude Hub.
LinkedIn