「箱の中で書いたファイルが、箱の外で実行される」をふさぐ──Claude Code v2.1.309が無人運用のすり抜けを一気に閉じ、v2.1.307が“止めた一手”を記録に残した
Claude Code v2.1.309 は、サンドボックスと権限チェックのすり抜けを一塊で修正。前々日の v2.1.307 はガードレールが止めた一手を記録する監査イベントを追加。無人運用で効く守りの手当てと、今すべき対応を整理します。
Anthropic は2026年10月22日、コーディングエージェント「Claude Code」の v2.1.309 を公開しました。見出しだけ追えば「不具合修正と安定性向上」の定例リリースに見えます。しかし修正ログを開くと、サンドボックス(実行を閉じ込める隔離箱)と権限チェックのすり抜けを塞ぐ修正が、一塊になって並んでいます。前々日の v2.1.307 では、ガードレールが実際に「止めた一手」を記録する監査イベントも加わりました。いずれも無人でエージェントを走らせる現場ほど効く、守りの手当てです。
「箱の中」で書いたものが「箱の外」で動く穴
今回ふさがれたすり抜けは、形がよく似ています。エージェント本体は箱の中にいるのに、箱の外にある「信頼された仕組み」が、箱の中で書かれたものを実行・読込・適用してしまう、という抜け道です。macOS / Linux を中心に、主に次の点が塞がれました。
- 起動ファイルが箱の外で走る: サンドボックス下の Bash コマンドが、実行のたびにシェルの起動ファイルを隔離の外側で読み込んでいた。利用者の権限そのままで任意のコードが走り得る経路です。
- シンボリックリンク経由で書き込み拒否がすり抜ける: macOS の denyWrite 指定が、シンボリックリンクをたどった実体の場所に適用されていなかった。
- MCP設定ファイルの改ざん: サンドボックス下のコマンドや自動承認された編集が、
--mcp-configで渡した設定ファイル自体を書き換えられた。 - 複合コマンドでの確認漏れ: ディレクトリを移動してから git を走らせる複合コマンドや、リダイレクト・サブシェルを絡めた書き込みで、本来出るはずの承認プロンプトが出ないケース。
- worktree隔離のすり抜け: 隔離ガードが拒否すべきロケール接頭辞つきコマンドや、zsh上の一部の算術コマンドを受け入れていた。
- 無効化したMCPサーバの再接続: 一度無効にしたMCPサーバが、後からの権限プロンプトで再接続されていた(print / SDK セッション)。
一つひとつは地味な穴です。ただ無人運用や、他人のリポジトリをエージェントに触らせる用途では、ひとつのすり抜けが権限設計全体の前提を崩しかねません。だからこそ、まとめて塞いだ意味があります。
守りが「何を止めたか」を記録に残す
v2.1.307 では、OpenTelemetry のイベント claude_code.safety_event が加わりました。権限ルール・自動モード・安全チェック・フック・サンドボックスのいずれかがツール呼び出しを止めた/確認を促した/差し戻したたびに、構造化されたイベントとして記録されます。
これまで「ガードレールが働いた瞬間」は、人が画面を見ていなければ流れて消えていました。人が「はい/いいえ」を押さなくなった無人運用で、後から「どこで何を止めたか」を監査証跡としてたどれる意味は小さくありません。なお同リリースには /claude-api api-version による API バージョン 2026-10-21 への移行も含まれます。先日取り上げた API 改定(サンプリング調整つまみの廃止)に、CLI 側が追随したものです。
無人で回している人が、いますること
更新に伴う実務上の手当てを、作業単位で挙げます。
- まず更新する: 上記のすり抜けは権限・隔離の前提に関わります。無人運用・共有リポジトリ・ヘッドレス/SDK 利用なら、適用の優先度は高めです。
- ultrareview の仕様変更に備える:
claude ultrareviewがワークスペースの信頼確認を要求するようになりました。端末では確認し、なければ拒否します。スクリプトからは--trust-workspaceを渡す(またはCLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1)必要があります。自動化が黙って止まらないよう、事前に手を入れておきます。 - sed -i の挙動変更を確認する: これまで疑似的な編集プレビュー扱いだった
sed -iが、通常の Bash コマンドとして実行されるようになりました。/rewindでは戻せません。巻き戻し前提のフローは見直します。 - safety_event を監視に載せる: すでに OpenTelemetry を流しているなら、止められたツール呼び出しを可視化・集計する導線を用意しておくと、無人運用の点検が楽になります。
なぜ一度に、これだけ塞ぐのか
一度のリリースで権限・サンドボックス周りの修正がこれだけ並ぶ事実は、裏を返せば「コードを実行できるエージェントを安全な箱に閉じ込める」ことが依然として難しいのを示しています。研究者の間でも、サンドボックス化したエージェントが『箱の外の信頼された道具』を介して制限をすり抜ける手口が繰り返し報告されており、隔離を過信すべきでないという指摘が出ています。
今回の修正は、その懸念に沿った地道な手当てです。派手さはありませんが、無人でエージェントを走らせる前提を一段だけ堅くするものと言えます。利便性の裏側で、権限設計と監査の手当ては運用側の責任として残り続ける──そうした温度で受け止めておくのが妥当でしょう。
参照: Claude Code 公式チェンジログ / anthropics/claude-code v2.1.307 リリース / Classmethod: Claude Code v2.1.308→v2.1.309 / Classmethod: Claude Code v2.1.307 / VibeHacker: v2.1.309 の sandbox / MCP-config 修正


