0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.223|Bash permission のバイパスが塞がる|毎日Changelog解説

0
Posted at

Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。

v2.1.223 で、細工した Bash コマンドが permission チェックから自身の一部を隠せる不具合が直りました。承認ダイアログ側も、タブや不可視 Unicode でコマンドの一部を画面から消せる経路が塞がれています。Bash の自動承認を設定しているなら、v2.1.223 が最優先のアップデートです。

今回の注目ポイント

  1. Bash permission のバイパスを修正 - 細工したコマンドが permission チェックから自身の一部を隠せた (v2.1.223)
  2. 承認ダイアログのコマンド偽装を封鎖 - タブや不可視 Unicode で埋めたコマンドの一部が承認画面に出ていなかった (v2.1.223)
  3. workflow スクリプトのサンドボックス脱出を修正 - dynamic import() でサンドボックス外のコードを実行できた (v2.1.223)
  4. bypassPermissions が組織ポリシーを無視していた - agent 定義側から bypass 無効化ポリシーを素通りできた (v2.1.223)
  5. マーケットプレイスの許可・ブロックに owner ワイルドカード - owner/* で GitHub org 配下をまとめて指定 (v2.1.223)
  6. CLAUDE_CODE_DISABLE_1M_CONTEXT の対象がモデル固定リストから外れた - ネイティブ 1M ウィンドウを持つ Claude モデル全部が対象に (v2.1.223)

permission チェックをすり抜けるコマンドが塞がれた

Bash の permission チェックには、コマンドが自身の一部を隠せる経路がありました。

Fixed a Bash permission bypass where a crafted command could hide parts of itself from permission checks

承認ダイアログ側も同じ方向の修正。タブや不可視 Unicode で埋めたコマンドは、ダイアログ上で一部が表示されない状態でした。画面に出ている文字列を見て承認したつもりが、実際にはその先も走る。

Bash を allow ルールで自動承認している環境は、許可したつもりの範囲と実際に通るコマンドがずれます。v2.1.223 に上げるまで、Bash の自動承認は絞っておくのが安全です。

サンドボックス側も 2 件。workflow スクリプトが dynamic import() でサンドボックス外のコードを実行できた問題と、agent 定義の bypassPermissions モードが組織の bypass-permissions 無効化ポリシーを無視していた問題が、それぞれ直っています。後者は managed settings で bypass を禁止していても、agent 定義を経由すれば素通りできた形。

owner/* で組織配下のマーケットプレイスをまとめて指定

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "my-org/*" }
  ],
  "blockedMarketplaces": [
    { "source": "github", "repo": "untrusted-org/*" }
  ]
}

managed settings のこの 2 つのリストは、リポジトリ単位に加えて owner 単位の指定を取ります。GitHub org 配下のリポジトリを 1 つずつ並べず、org 名だけで許可・ブロックできる。判定はダウンロード前に走るため、ブロック対象のソースはファイルシステムに触れません。

ワイルドカードが効くのは managed settings の strictKnownMarketplacesblockedMarketplaces だけです。marketplace addextraKnownMarketplacesknown_marketplaces.json では owner/* がリポジトリ名そのものとして解釈されます。

1M コンテキストの抑制がモデル固定リストから外れた

CLAUDE_CODE_DISABLE_1M_CONTEXT が、ネイティブ 1M ウィンドウを持つ Claude モデル全部を auto-compaction で 200K に抑えるようになりました。対象モデルの固定リストは廃止。auto-compaction が 200K を維持できていないときは、起動時に警告が出ます。

未知のモデル ID で動いているセッションにも auto-compact が効きます。想定コンテキストウィンドウを超えて伸び続ける状態が止まる。従来の挙動に戻すなら CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 を設定します。

その他の変更

バージョン カテゴリ 変更点 概要
v2.1.223 新機能 サブエージェントのモデル制限を警告 workflow agent / forked skill / slash command / 再開した background agent の要求モデルが制限され、親モデルで動くときに警告
v2.1.223 新機能 cloud セッションの /teleport ヒント claude --teleport <session id> でローカルに続きを持ってくる方法を表示
v2.1.223 変更 /review/code-review のエイリアスに 現在の diff か PR をレビュー。/code-review <level> <pr#> 形式、深掘りは /code-review ultra
v2.1.223 変更 /code-review のレベル省略時 直前に打ったレベルを再利用。/code-review high のように指定すると切り替わる
v2.1.223 修正 gateway のモデル検出 vertex_ai/claude-*bedrock/anthropic.claude-* のような prefix 付き ID で登録された Claude モデルが隠れていた
v2.1.223 修正 modelOverrides Anthropic モデル ID でないキーがセッションの正式モデル ID として扱われていた。未知キーは無視
v2.1.223 修正 managed settings の env server 配信の設定が machine-local managed-settings.json や MDM プロファイルの env ブロックを無効化しなくなり、admin env はキー単位でマージ
v2.1.223 修正 Linux の sandbox 起動 sandbox.filesystem.denyWrite が作業ディレクトリを覆うとコマンドが起動しなかった
v2.1.223 修正 セッション再開 セッション途中の /cd 後に再開すると空で戻る問題と、不正な diagnostics 添付を含む履歴で毎ターン失敗する問題
v2.1.223 修正 forked background agent resume 時に fork 元プロンプトの再構築に失敗すると、以降ずっと "already resuming" で固まった
v2.1.223 修正 git push 出力の解析 珍しい出力でまれにハングした

まとめ

v2.1.223 の修正のうち 4 件が permission とサンドボックスの穴埋め。Bash の自動承認ルールを書いている環境と、managed settings で bypass-permissions を禁止している組織は、上げる優先度が高い。gateway 経由で Claude モデルを使っているなら、vertex_ai/bedrock/ prefix のモデルがモデル一覧に戻ります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?