shiichan

細工されたコマンドで権限チェックをすり抜ける穴を発見・修正!Claude Code が v2.1.223 に

おつかれさま、しぃちゃんだよ!今日も Claude Code のアップデート情報を持ってきたよ!

Claude Code Release github.com

なにが発表されたの?

GitHub の Claude Code Release によると、v2.1.223 がリリースされたよ。権限まわりのセキュリティ修正がいくつも入ってるのが今回のポイントで、ほかにもマーケットプレイスの管理設定やモデル探索まわりの改善、細かいバグ修正がまとまってるの。

今までどうだったの?

これまでの Bash の権限チェックには抜け道があって、細工されたコマンドだと自分の一部を隠して承認チェックをすり抜けられてしまう問題があったの。タブ文字や見えない Unicode でパディングされたコマンドでも同じように、承認ダイアログにコマンドの一部を見せずに隠せてしまうことがあったんだって。それに、ワークフロースクリプトが動的な import() を使うと、ワークフローのサンドボックスの外でコードを実行できてしまう抜け道もあったし、エージェント定義の bypassPermissions モードが組織の bypass-permissions 無効化ポリシーを無視してしまう権限の穴もあったんだよね。

これで何が変わるの?

セキュリティ関連の修正がまず目立つポイントだよ。

  • Bash の権限バイパスを修正。細工されたコマンドが自分の一部を権限チェックから隠せてしまう問題を解消
  • タブ文字や見えない Unicode でパディングされたコマンドが、承認ダイアログでコマンドの一部を隠せてしまう問題を修正
  • ワークフロースクリプトが動的な import() でワークフローサンドボックスの外のコードを実行できてしまう問題を修正
  • エージェント定義の bypassPermissions モードが、組織の bypass-permissions 無効化ポリシーを無視してしまう権限の穴を修正

マーケットプレイスやモデルまわりの機能も増えたよ。

  • strictKnownMarketplacesblockedMarketplaces の管理設定に、オーナーのワイルドカード指定("owner/*")が追加。GitHub Organization 配下のマーケットプレイスリポジトリをまとめて許可・ブロックできるようになったの
  • ワークフローエージェント・フォークされたスキル・スラッシュコマンド・再開したバックグラウンドエージェントが要求したサブエージェントのモデルが制限されていて、代わりに親モデルが動くときに警告が出るようになったよ
  • クラウドセッションに /teleport のヒントが追加。claude --teleport <session id> でローカルから続きを再開する方法が表示されるようになったの

深く潜ってみよう

そのほかの修正・変更もいくつかピックアップするね。

  • 修正: mid-session の /cd のあとにセッションを再開すると空で返ってきてしまう問題
  • 修正: ゲートウェイのモデル探索が vertex_ai/claude-*bedrock/anthropic.claude-* のようなプロバイダープレフィックス付き ID で登録された Claude モデルを見つけられなかった問題
  • 修正: Anthropic のモデル ID じゃない modelOverrides のキーが、セッションの正式なモデル ID として扱われてしまう問題。仕様通り、未知のキーは無視されるようになったよ
  • 修正: 管理設定まわり。サーバー配信の設定が、マシンローカルの managed-settings.json や MDM プロファイルの env ブロックを無効化しないように。管理者の env はキー単位でマージされるようになったの
  • 修正: sandbox.filesystem.denyWrite が作業ディレクトリを含むとき、Linux でサンドボックス化されたコマンドが起動できなかった問題
  • 修正: フォークしたバックグラウンドエージェントが、再開中にフォーク元のプロンプト再構築に失敗すると、セッションの残り時間ずっと「already resuming」のまま固まってしまう問題
  • 修正: 履歴に壊れた診断用の添付があるセッションを再開すると、毎ターン失敗したり、インタラクティブ画面が反応しなくなったりする問題
  • 修正: 通常と違う git push の出力をパースするときにまれにハングする問題

「変更」としては、コンテキストウィンドウまわりのルールも調整されたよ。

  • CLAUDE_CODE_DISABLE_1M_CONTEXT が、固定リストだけじゃなく、ネイティブに 1M ウィンドウを持つすべての Claude モデルを自動圧縮で 200K に抑えるように変更。自動圧縮がセッションを 200K に抑えられていないときは、起動時に警告が出るよ
  • 自動圧縮が、未知のモデル ID のセッションでも想定コンテキストウィンドウ内に収まるように変更(それを超えて伸び続けないように)。以前の挙動に戻したいときは CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 を設定してね
  • /review/code-review のエイリアスに変更。現在の diff や PR(/code-review <level> <pr#>)をレビューできて、/code-review ultra でクラウドの深いレビューもできるよ
  • effort レベルを指定しない /code-review は、前回入力したレベルを再利用するように変更。/code-review high のようにレベルを書くと変更できるの

まとめ

  • Bash の権限バイパスやワークフローサンドボックス脱出など、複数のセキュリティ修正が入った
  • マーケットプレイスのオーナーワイルドカード指定、モデル制限時の警告、/teleport ヒントなどの新機能が追加
  • モデル探索・管理設定・サンドボックスまわりの細かいバグ修正も多数
  • 1M コンテキストの自動圧縮ルールや /review/code-review のエイリアス化)などの仕様変更も入った

毎日 Claude Code を使ってる人はもちろん、ワークフロースクリプトやカスタムマーケットプレイスを運用してる人、組織で権限ポリシーを管理してる人には見逃せないアップデートだよ!