「許可したつもり」の範囲がずれていた──Claude Code v2.1.214が塞いだ権限チェックの5つの抜け道
Claude Code v2.1.214は新機能より修正が主役。PowerShell 5.1のバイパス、dir/**の過剰一致、1万字超コマンドの解析漏れなど、権限チェックの抜け道を5つ塞いだ。無人運用で今日確認すべき点を整理する。
Anthropic が 7月18日、コーディングエージェント Claude Code の v2.1.214 を公開しました。目立つ新機能の追加は少なく、中身の大半は権限チェックの抜け道をふさぐ修正です。地味な回に見えますが、エージェントを自動モードで走らせている人にとっては、今月もっとも読む価値のある変更履歴かもしれません。
Claude Code は「このコマンドを実行してよいか」を毎回判定し、危ないものだけ人に確認を求めます。今回直ったのは、その判定そのものが正しく働かないケースでした。つまり「許可したつもりの範囲」が、実際にはもっと広かったという種類の不具合です。
「許可したつもり」がずれていた5つの場所
変更履歴に挙がっている権限まわりの修正を整理すると、次のようになります。いずれも攻撃の実演が公表されているわけではなく、Anthropic 自身が塞いだ内部的な修正として記載されています。
| 直った箇所 | 何が起きていたか |
|---|---|
| Windows PowerShell 5.1 | 権限チェックをすり抜ける経路があった |
dir/** の許可ルール | 作業ディレクトリ配下だけのつもりが、同名ディレクトリならどこでも一致していた |
| Bash の長いコマンド | 1万文字を超えるコマンドやファイルディスクリプタのリダイレクトで、解析が正しく働かなかった |
zsh の [[ ]] 比較 | 変数の添字を使った書き方に対するチェックが甘かった |
help / man | 危険なオプション付きでも自動承認されていた組み合わせがあった |
この5つには共通点があります。どれもシェルの構文解釈の隙だという点です。エージェントの許可設定は、結局のところ「文字列としてのコマンドを、どこまで正確に読めるか」に支えられています。読み方が一段甘いと、設定画面の見た目は何も変わらないまま、実効範囲だけが広がります。
とくに dir/** の修正は、設定を見直す合図
実務への影響がいちばん大きいのは dir/** の挙動変更でしょう。これまでは src/** のような許可ルールが、作業ディレクトリの外にある同名ディレクトリにも当たっていました。今回から <cwd>/src に限定されます。
正しい方向の修正ですが、裏を返せば今までより許可の範囲が狭くなるということです。広い一致に無自覚に頼っていた設定は、更新後に確認プロンプトが増える可能性があります。無人運用のスクリプトが途中で止まるとしたら、まずここを疑うのが早道です。
あわせて docker コマンドについても、デーモンの接続先を差し替えるフラグが付いている場合に確認を求めるようになりました。コンテナ経由で隔離しているつもりが、別のデーモンに向いていた、という取り違えを防ぐ意図と読めます。
会話を打ち切る権限が、AI側にも渡された
新しい道具として EndConversation ツールが加わりました。変更履歴の説明によれば、極端に攻撃的な利用者や、制限を外そうとする試みに対して、Claude 側からセッションを終了できるようにするものです。
これは開発ワークフローの機能というより、運用上の安全弁にあたります。これまで「応答を拒否する」しかなかった局面で、会話そのものを閉じる選択肢が増えたかたちです。チームで共有するエージェントを社内に置いている場合、セッションが予期せず終了しうることは、あらかじめ周知しておくとよいでしょう。
沈黙していた長時間ツールに、脈が付く
もう一つの追加が、長く走るツール呼び出しへの定期的な進捗ハートビートです。これまでは時間のかかる処理の最中、画面上は何も動かず、止まっているのか進んでいるのか判別しづらい時間帯がありました。
ここに定期的な信号が入ることで、監視の判断がしやすくなります。あわせて、メモリファイルの先頭情報に ISO 形式のタイムスタンプが入るようになり、OpenTelemetry によるログ出力も拡充されました。「エージェントが今なにをしているか」を外から観測する材料が、少しずつ増えている流れです。
更新したら確認しておきたいこと
- 許可ルールの棚卸し:
**を含む設定が、作業ディレクトリの外を当てにしていなかったか確認する。 - 自動運用の再テスト: cron やCIでエージェントを回している場合、更新後に一度、確認プロンプトで止まらないか通しで試す。
- Windows 環境の優先更新: PowerShell 5.1 の修正が含まれるため、Windows で自動モードを使っている環境は後回しにしない。
- ログの受け皿: OpenTelemetry の出力先を持っているなら、増えた項目を拾えるか見ておく。
「塞がれた」ことを、安心の理由にしすぎない
今回の修正は歓迎すべきものです。ただし読み方には注意が要ります。これだけの抜け道が同時に見つかったという事実は、この種の判定が本質的に難しいことも示しています。シェルの構文は複雑で、解析の穴は今後も出うると考えるほうが自然でしょう。
実際、エージェントに外部コンテンツを読ませる運用では、読み込んだ内容が指示として混ざるリスクが以前から指摘されています。権限チェックは重要な一枚の壁ですが、それだけに依存する設計は避けたいところです。作業ディレクトリの分離、認証情報を環境に置かないこと、サンドボックスの併用といった複数の層で守る前提は、今回の更新後も変わりません。
もう一点、更新のたびに許可の実効範囲が変わりうることは、無人運用にとって小さくない負担です。便利さと引き換えに、変更履歴を読む仕事が定常業務として増えている面は否めません。自動化の設計には、この読み合わせのコストも織り込んでおく必要があります。
参照: Claude Code Changelog (Anthropic) / anthropics/claude-code CHANGELOG.md / Releasebot: Claude Code Updates / Configure permissions - Claude Code Docs