Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。
v2.1.223 で、細工した Bash コマンドが permission チェックから自身の一部を隠せる不具合が直りました。承認ダイアログ側も、タブや不可視 Unicode でコマンドの一部を画面から消せる経路が塞がれています。Bash の自動承認を設定しているなら、v2.1.223 が最優先のアップデートです。
今回の注目ポイント
- Bash permission のバイパスを修正 - 細工したコマンドが permission チェックから自身の一部を隠せた (v2.1.223)
- 承認ダイアログのコマンド偽装を封鎖 - タブや不可視 Unicode で埋めたコマンドの一部が承認画面に出ていなかった (v2.1.223)
-
workflow スクリプトのサンドボックス脱出を修正 - dynamic
import()でサンドボックス外のコードを実行できた (v2.1.223) -
bypassPermissionsが組織ポリシーを無視していた - agent 定義側から bypass 無効化ポリシーを素通りできた (v2.1.223) -
マーケットプレイスの許可・ブロックに owner ワイルドカード -
owner/*で GitHub org 配下をまとめて指定 (v2.1.223) -
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 の strictKnownMarketplaces と blockedMarketplaces だけです。marketplace add や extraKnownMarketplaces、known_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 のモデルがモデル一覧に戻ります。