Claude Code 2.1.214 : le grand verrouillage des permissions

La 2.1.214 referme une dizaine de trous de permission (PowerShell, Bash, Docker, fichiers) et change le sens de tes règles dir/**. Elle ajoute aussi EndConversation. Ce qui compte pour ton setup.

claude-code changelog securite permissions

La version 2.1.214 de Claude Code est sortie aujourd’hui. C’est une version de durcissement : une bonne dizaine de correctifs touchent directement le moteur de permission. Voici ce qui compte vraiment.

Ta règle Edit(src/**) ne protégeait pas ce que tu croyais

Avant cette version, une règle d’autorisation en un seul segment comme Edit(src/**), ou une condition de hook if: dir/**, matchait dir/ n’importe où dans l’arborescence, pas seulement <cwd>/dir. Concrètement, une règle censée s’appliquer uniquement au src/ à la racine de ton projet pouvait aussi autoriser des écritures dans un src/ niché trois dossiers plus loin, sans que tu l’aies prévu.

C’est corrigé : dir/** matche désormais uniquement <cwd>/dir. Pour retrouver l’ancien comportement (toute profondeur), il faut écrire **/dir/** explicitement.

Nuance à retenir : ce changement de portée touche les règles allow et les conditions if: des hooks. Les règles deny/ask gardent leur matching à toute profondeur, volontairement, pour rester du côté prudent.

Si tu as un permissions.json ou des hooks avec des patterns en un seul segment, relis-les. C’est le genre de trou qui ne se voit qu’après coup.

Une salve de correctifs sur le moteur de permission

Cette version referme plusieurs portes qui laissaient passer des commandes sans prompt alors qu’elles auraient dû en déclencher un :

  • Un bypass de permission touchait spécifiquement les commandes lancées en session Windows PowerShell 5.1.
  • Les formes de redirection par descripteur de fichier, que bash parse différemment de l’analyseur de permission, passaient en clair. Le comportement est maintenant fail closed : dans le doute, ça prompt.
  • Les commandes de plus de 10 000 caractères échappaient à l’analyse automatique. Elles déclenchent maintenant systématiquement un prompt.
  • Les substitutions et modificateurs de variables zsh dans des comparaisons [[ ]] étaient traités comme du texte inerte, donc ignorés. Ils demandent maintenant une validation.
  • Certaines commandes help et man pouvaient être auto-approuvées alors qu’elles embarquaient des options dangereuses, des substitutions de commande ou des chemins avec backslash.
  • Sur les sessions distantes, le prompt de confirmation locale pouvait dans certains cas être court-circuité par l’exécution.

Aucune de ces failles n’est spectaculaire prise isolément. Empilées, elles dessinent une vraie campagne de durcissement du moteur de permission. Si tu fais tourner Claude Code en mode non surveillé (CI, agents en arrière-plan, sessions distantes), cette version en vaut la mise à jour à elle seule.

Docker et file demandent maintenant la permission

Deux commandes qui passaient auparavant sans prompt en réclament un désormais :

  • Les commandes docker (y compris le shim Podman) qui embarquent un flag de redirection vers un daemon distant (--url, --connection, --identity, le mode remote de Podman) déclenchent maintenant une demande de permission.
  • Les commandes file utilisant -m/--magic-file ou -f/--files-from ne sont plus auto-autorisées comme de simples lectures.

Si tes scripts ou tes hooks appellent ces commandes en mode non surveillé, attends-toi à un prompt là où il n’y en avait pas avant.

EndConversation : Claude peut couper court

Nouvel outil : Claude peut désormais mettre fin à une session face à un utilisateur très abusif ou une tentative de jailbreak, sur le même principe que ce qui existe sur claude.ai depuis 2025. Aucun impact sur un usage normal, mais utile à savoir si tu développes des intégrations exposées à des utilisateurs externes.

Sessions d’arrière-plan : plusieurs fuites colmatées

Si tu utilises /background ou la vue agents, plusieurs bugs concrets sont corrigés : des sessions parkées en arrière-plan qui gardaient le démon et un process worker vivants indéfiniment, des sessions terminées impossibles à supprimer via claude rm une fois le service d’arrière-plan passé en idle, et des sessions lancées depuis un dossier hors dépôt git qu’on ne pouvait pas supprimer depuis la vue agents.

Le reste, en vrac utile

  • Un heartbeat périodique s’affiche maintenant pendant les appels d’outil longs qui restaient silencieux avant.
  • Les hooks qui renvoient un code de sortie 2 devaient bloquer l’exécution comme documenté, sauf quand leur JSON de sortie standard échouait la validation de schéma : c’est corrigé.
  • Régression corrigée : les plugins activés via le flag CLI --settings ne se chargeaient plus depuis la 2.1.181.
  • /ultrareview refusait de tourner dans les dépôts sans merge base ; il propose maintenant de tout revoir.
  • claude update et claude doctor pouvaient rester bloqués silencieusement quand un chemin de config shell est un dossier.
  • Les tâches planifiées (routines) traitaient leur propre prompt configuré comme une entrée non fiable : il est désormais délivré comme la tâche assignée à la session.

Faut-il mettre à jour

Oui, sans hésiter, surtout si tu utilises des règles de permission ou des hooks avec des patterns dir/**, si tu tournes en mode non surveillé (CI, sessions distantes, automatisation), ou si tes pipelines appellent docker ou file. Le nombre de correctifs de sécurité de cette version dépasse largement le simple confort.

Pour le reste, retiens le changement de portée de dir/** : c’est celui qui peut silencieusement modifier ce que tes règles existantes autorisent déjà.

Source : changelog officiel Claude Code.

Pierre Rondeau

Pierre Rondeau

Développeur et indie builder. Je construis des produits et automatisations avec l'IA. Créateur de Claude Hub.

LinkedIn