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.303〜v2.1.310|sandbox の外でシェル起動ファイルが走っていた|週刊Changelog解説

0
Posted at

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

v2.1.309 で、sandbox 内の Bash がシェルの起動ファイルを sandbox の外で走らせていたバグが直りました。sandbox で囲っていても、起動ファイルに書いた処理はコマンドごとに制限なしで動いていたことになります。Bash の permission 判定の見逃し修正も同じ版にまとまって入り、v2.1.303 からの 8 版は権限境界を直す週でした。

今週の拾いどころ

変更 版 効く人
sandbox 内の Bash が、コマンド実行前にシェルの起動ファイルを sandbox の外で実行していた v2.1.309 sandbox 利用者
cd の包み方や subshell 内のリダイレクトなど、Bash の permission 判定が見逃していた書き方をまとめて修正 v2.1.309 permission ルールを細かく書いている人
独自 ANTHROPIC_BASE_URL や Vertex / Bedrock で全リクエストが失敗する v2.1.304 の回帰を修正 v2.1.305 ゲートウェイ経由の利用者
/auto-mode-setup 追加。プロジェクトと直近セッションを読んで auto mode に環境を教える v2.1.304 auto mode 利用者
sed -i が通常の Bash 確認になり、/rewind で戻らなくなる v2.1.309 Bash 経由で編集させている人
Claude Code が HTTP MCP のツール呼び出しを接続断で二重送信していた。再試行は read-only か idempotent なツールだけに v2.1.307 HTTP MCP 利用者
claude --worktree が、HEAD detached か別ブランチにいる状態で終了すると、確認なしで worktree とブランチを消してコミットを失うことがあった v2.1.304 --worktree 利用者

sandbox の外で起動ファイルが走っていた

sandbox で囲った Bash コマンドは、v2.1.309 より前は実行のたびにシェルの起動ファイルを sandbox の外で実行していました。 macOS と Linux の両方が対象で、原文はこう書いています。

Fixed sandboxed Bash commands on macOS and Linux running the shell's startup files outside the sandbox before each command

sandbox の制限がかからない状態で、起動ファイルの中身がコマンドごとに動いていました。同じ v2.1.309 で、sandbox の境界がずれていた箇所がほかにも直っています。

  • macOS: denyWrite の glob が、symlink 経由で到達したフォルダの実パスに効いていなかった
  • --mcp-config で渡した設定ファイルを、sandbox 内のコマンドと自動承認された編集が書き換えられた
  • Linux: セッションより長く生き残ったバックグラウンドコマンドで、書き込み拒否が外れていた
  • 設定ディレクトリに symlink で到達していると、プロファイルストアの書き込み保護が効かなかった

sandbox から除外したコマンドの扱いも v2.1.309 で変わりました。sandbox を有効にしているのに起動できない環境では、除外コマンドが write-list のパスへ書く前に Claude Code が確認を出します。sandbox 無しのフォールバック実行は、その場面では通りません。

v2.1.305 で追加された sandbox.allowNestedUserNamespaces を有効にすると、Linux の sandbox 内コマンドが user namespace を作れます。Chromium や rootless podman を動かすための設定ですが、原文は「これにより sandbox のファイル保護を回り込める」と明記しています。

Linux の /sandbox と起動時の警告は、v2.1.310 から Ubuntu の AppArmor を名指しします。user namespace の制限が bubblewrap を止めている場合に、その解除方法も出ます。v2.1.304 では、sandbox.filesystem.denyRead の glob に [user-id] のような文字クラスでない角括弧があると、Linux で sandbox コマンドが起動できないバグも直りました。

permission 判定をすり抜けていた書き方

sandbox の外側にある Bash ツールの permission 判定も、v2.1.309 を中心にまとめて直りました。

すり抜けていた条件 修正後 版
リダイレクト先を開けずに失敗しうるコマンドが設定した変数 判定がその変数を信用しない v2.1.309
cd を包んだり前置きしたりしてから git を実行する複合コマンド 素の cd と同じく確認を出す v2.1.309
subshell を含む一部コマンドでの、Edit(path) の deny 対象パスへのリダイレクト deny ルールが止める v2.1.309
worktree 隔離セッションでの、ロケール接頭辞付きコマンドと zsh の算術コマンド 隔離ガードが拒否する v2.1.309
/Volumes や /media や WSL の /mnt/c のようなマウント先と、その直下のフォルダへの rm -r rm -rf /Applications と同じ安全確認が出る v2.1.304
Windows: Git Bash が無く、hook コマンドが引用符付き文字列だけのとき PreToolUse / PermissionRequest hook がツール呼び出しを通さない v2.1.310
Windows: PowerShell hook のプログラムが exit code 2 で終了 ブロックとして扱う。Git for Windows 未導入時も fail open しない v2.1.309

sed -i は v2.1.309 から書かれたとおりに実行し、通常の Bash 確認を出します。ファイル編集に見立てたプレビュー表示は無くなり、ほかの Bash 経由の編集と同じで /rewind では戻りません。

bypass permissions モードでの危険な rm / rmdir は、Desktop アプリと VS Code では v2.1.309 から確認を出さずに即座に拒否し、書き換えのヒントを返します。無人のセッションが確認待ちで止まらないための変更です。

ゲートウェイ越しで全リクエストが落ちた v2.1.304

v2.1.304 から、独自 ANTHROPIC_BASE_URL の背後でもツール検索が既定で有効になりました。ゲートウェイが 400 / 422 を返せば、ツール検索なしで再試行します。ただ同じ v2.1.304 には、Vertex / Bedrock などのプロバイダがツール検索を拒む場合と、ToolSearch を禁止したり --tools から外したゲートウェイで、全リクエストが失敗する回帰がありました。v2.1.305 からは、これらの構成でもツール検索なしで再試行します。

v2.1.310 では、effort-2025-11-24 の beta 値や会話途中の system メッセージを拒むサーバーに対して、それらを外した再送が入りました。v2.1.304 は、LLM ゲートウェイが返す context_management: Extra inputs are not permitted エラーを、そのフィールドなしの再送で回避します。keepalive の ping しか返さないゲートウェイで「Waiting for API response」が点滅していた件は、Anthropic 以外の経路を 45 秒待つ形で v2.1.309 が直しました。

ほかに運用へ響く変更

変更 版
Pro / Max プランで、放置した会話の再開が 5 時間枠の usage を無視できない割合で消費するとき警告する。新規会話から前の会話を参照する選択肢も示す v2.1.304
claude ultrareview がワークスペースの信頼を要求。端末では確認を出し、それ以外は拒否。スクリプト用に値を取らない --trust-workspace と CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1 がある v2.1.309
allowedMcpServers が、変数展開を env だけに使う managed-mcp.json の stdio サーバーを除外しなくなる。allowlist から外していたものがアップグレード後に読み込まれる。deniedMcpServers で止められる v2.1.305
cleanupPeriodDays を非常に大きくすると、貼り付け画像など最近のファイルまで掃除で消えていた v2.1.310
CLAUDE_CODE_AUTO_COMPACT_WINDOW=200k が黙って 100K の窓になっていた。k / M 接尾辞を受け付け、範囲外や無視される値には警告を出す v2.1.304
権限ルール、auto mode、安全チェック、hook、sandbox がツール呼び出しを止めた・確認した・差し戻したたびに、OpenTelemetry イベント claude_code.safety_event を送る v2.1.307
サイズ上限を超えたネストした CLAUDE.md は先頭だけ読み込む。巨大な CLAUDE.md 配下のファイルを読むと compaction が繰り返されていた v2.1.309

v2.1.309 に寄った 8 版

v2.1.303 から v2.1.310 までは 5 日あまりで 8 版が出ました。v2.1.303 / v2.1.306 / v2.1.308 は 1〜2 行で、行数が最も多いのは 79 行の v2.1.309 と 76 行の v2.1.304 です。前の週の目玉は 54 分放置での idle compaction でしたが、今週の修正は sandbox と permission 判定の境界に寄りました。v2.1.307 では権限ルールや sandbox がツール呼び出しを止めるたびに claude_code.safety_event が出るようになり、v2.1.304 では auto mode に環境を教える /auto-mode-setup が入りました。

前回: Claude Code v2.1.299〜v2.1.302|54 分の放置で idle compaction が走る|週刊Changelog解説

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?