はじめに
Claude Code v2.1.314 がリリースされました。今回は新機能に加えて、既存の設定の結果が変わりうる挙動変更とセキュリティ関連の修正が含まれています。
主なポイントは次の3つです。
-
permissions.blockWritesOutsideWorkingDirectoriesの追加(作業ディレクトリ外への書き込みを全権限モードで禁止) -
forceRemoteSettingsRefresh・サンドボックス・--setting-sourcesまわりのセキュリティ修正 -
FORCE_HYPERLINK=falseの意味の反転、Bash のwhichの扱いなどの挙動変更
📌 影響を受ける人
- auto mode や CI で Claude Code を動かしている人
- 組織の管理設定(managed settings)で Claude Code を配布している管理者
- フックの
if条件、FORCE_HYPERLINK、sandbox.excludedCommandsを使っている人- Bedrock / Vertex / Foundry / LLM gateway 経由で利用している人
変更の全体像
変更内容
1. 作業ディレクトリ外への書き込みを禁止する設定(high)
新設定 permissions.blockWritesOutsideWorkingDirectories を有効にすると、Write・Edit・NotebookEdit は作業ディレクトリ外を指すパスへの書き込みを拒否します。auto mode を含むすべての権限モードで適用されるため、書き込み範囲を明確に区切るガードレールとして使えます。
| 項目 | 内容 |
|---|---|
| 設定キー | permissions.blockWritesOutsideWorkingDirectories |
| 対象ツール | Write / Edit / NotebookEdit |
| 適用範囲 | すべての権限モード(auto mode 含む) |
2. セキュリティ関連の修正(high)
⚠️ 注意
管理設定を使っている組織では、以下の修正内容を確認してください。
| # | 修正内容 | 影響 |
|---|---|---|
| 1 |
forceRemoteSettingsRefresh をリモート管理設定だけで指定していると、保存済みコピーの期限切れ後に効かなくなっていた |
サーバーに接続できない場合、ポリシーなしでセッションが始まる可能性があった |
| 2 |
claude -p --resume / --continue で入った worktree にサンドボックスが効かなかった |
保護なしで動作していた |
| 3 |
--setting-sources で除外した設定ファイルが、auto mode のルールや保存済み権限同意を提供し続けていた |
意図しない設定が適用されていた |
| 4 | Monitor ツールが起動したシェルコマンドで、Bash にマッチするフックが動かなかった | ブロックや確認はできるが、承認や書き換えはできない |
| 5 | CI(端末あり)で claude ultrareview / claude remote-control が信頼確認を尋ねていた |
CI 設定時、信頼されていないフォルダは即拒否に |
| 6 | 管理者の TLS 信頼設定が Claude Desktop セッションに適用されていなかった | 修正済み |
| 7 | 管理プラグイン設定下で、自分の --plugin-dir / --plugin-url プラグインが壊れているとモデル切り替えが拒否されていた |
修正済み |
| 8 |
sandbox.excludedCommands の説明が誤っていた |
後述 |
⚠️
sandbox.excludedCommandsの正しい挙動
説明文は「列挙したコマンドは常にサンドボックス外で動く」となっていましたが誤りでした。1回の呼び出しに含まれるすべてのコマンドがエントリに一致したときだけ効きます。
3. 挙動変更(要確認)
⚠️ Breaking Change
既存の設定の結果が変わりうる変更です。
| 対象 | 変更内容 |
|---|---|
FORCE_HYPERLINK=false(no・off も同様) |
ハイパーリンクをオフにする(従来はオンになっていた) |
Bash ツールの which
|
継承した which のエイリアス・関数を消し、export された which / unsetenv 関数も渡さない。which は常にシステムコマンドか zsh ビルトイン |
フック if 条件 |
Monitor(tail *) と書くと Monitor ツールのシェルコマンドに一致する(Bash(tail *) と同様) |
| ファイルツール | 組織のサーバー管理設定のローカルコピーを編集する前に確認を求める |
/ultrareview |
git 実行前にワークスペースの信頼を確認する |
/permissions の Recently blocked |
全文を読めない呼び出し(端末の高さ不足を含む)の承認を拒否する |
| Cowork クラウドの auto mode | フックが MCP ツール呼び出しを allow しても「回答なし」とみなし、分類器か権限プロンプトが判断する |
4. idle compaction(medium)
VS Code と Claude Desktop の Code タブに追加されました。20万トークン以上の会話がアイドル状態になると要約を作成し、次のメッセージ送信時にプロンプトキャッシュが期限切れなら、その要約を使います。
- テレメトリをオフにしているサブスクライバーでも動作する
- Bedrock・Vertex・Foundry・LLM gateway では、1時間のプロンプトキャッシュが有効なら動作する
- PreCompact フックの出力が非常に大きいとコンパクションが失敗・反復する問題を修正。各フックの出力は 10,000 文字で切り詰められる
5. Claude apps gateway(medium)
- アップストリームに
groupsリストを指定可能に。リストにある IdP グループの開発者だけがそのアップストリームに送られる(フェイルオーバー時も同条件) - Bedrock アップストリームに
guardrail_traceを追加。発動したガードレールフィルタをログに残す(一致したテキストは記録しない) - Google のトークンエンドポイントが応答しないとき Vertex アップストリームが数分ハングする問題を修正
- 廃止予定の Claude Desktop キーについて、終了日後の起動時警告が「stops being accepted」と誤表示していた問題を修正
6. プロバイダー・gateway・モデル判定の互換性修正(medium)
| 事象 | 修正 |
|---|---|
| 管理者の effort 上限で「Invalid effort level」が毎ターン発生 | effort を下げて再試行し、使ったレベルを表示 |
claude -p が起動失敗しても終了コード 0 |
エラー表示して終了コード 1 |
| 画像の多い Bedrock セッションで「400 Input is too long.」 | 古い画像を削除してコンパクション |
| Foundry で既定の Sonnet/Opus/Haiku デプロイがないと失敗 | 同ファミリーの古いモデルにフォールバック |
gateway が tool_reference を拒否 |
tool search なしで一度だけ再送し、セッション中は記憶 |
| gateway がベータヘッダーを名指しで拒否 | そのヘッダーを外して再送 |
claude-opus-4.8 のようなドット区切りモデルIDが古いモデル扱い |
修正(コンテキスト長・出力上限・effort・thinking・コストが正しくなる) |
システム証明書ストアのクロス署名ルートで UNABLE_TO_GET_ISSUER_CERT
|
修正 |
そのほか、--resume や拒否後のモデル切り替えで未知のモデル名のセッションが別モデルに移される問題、ANTHROPIC_DEFAULT_OPUS_MODEL・availableModels・deniedModels の指定で古い Opus しか残らない場合の再試行挙動、管理設定でモデル固定時の Bedrock/Vertex アップグレード案内の毎回表示も修正・変更されています。
7. その他の改善・修正
-
MCP: 保存済みサインインが無効になった(サインイン不要の)MCP サーバーを、サインアウト状態で使えるように。
claude mcp logoutが失敗しても成功表示していた問題を修正 -
auto mode / 権限: ブロックメッセージに対象コマンド名と再チェックの旨、
/permissionsへの案内を表示。レビュータブは「Recently blocked」に改名。安全チェックが判定を返さなかった呼び出しをブロック扱いにしていた問題を修正 - セッション: 「Continue automatically at usage limit」が3回を超えて自動継続する問題、オフにした Ultracode が再びオンに戻る問題などを修正
-
パフォーマンス: 多数のサブエージェントを使うヘッドレス/SDK ターンのメモリ削減、
--resume・/contextの高速化、.trashの肥大化(約1024件で上限)と git のindex.lock競合を修正。macOS ではgit grepを C ロケールで実行 - クラウドセッション: 予約タスクが claude.ai アカウントで有効なプラグインを読み込む。セットアップスクリプトがエラー終了してもセッションが起動する
- Remote Control / Cowork: ワーカー登録の再試行、Cowork の WebFetch が PDF の 100,000 文字超を黙って捨てていた問題の修正など
-
VS Code:
CLAUDE_CODE_DISABLE_CFC_PROMPTが Claude in Chrome の指示追加も止めるように(ブラウザツール自体は使える) - 同梱スキル・TUI・Claude Tag(Slack): 軽微な修正と改善が多数
影響と対応
💡 Tips
書き込み範囲を厳密に制限したい場合は、permissions.blockWritesOutsideWorkingDirectoriesを有効にしたうえで、サンドボックスと組み合わせるのが安全です。
取るべきアクション
-
管理者:
forceRemoteSettingsRefreshの運用、--setting-sourcesの挙動、TLS 設定がこの修正で想定どおりになるか確認する -
FORCE_HYPERLINKを設定している人:falseの意味が反転したため、値を見直す -
whichのエイリアス・関数を使っている人: Bash ツール内では常にシステム版になる点を踏まえて確認する -
フックの
ifを書いている人:Monitor(...)形式でシェルコマンドに一致するようになったため、意図しない一致がないか確認する -
sandbox.excludedCommandsを使っている人: 1回の呼び出し内の全コマンドが一致する必要があることを前提にルールを見直す - CLAUDE.md を管理している人: 次の項目の追記を検討する(後述)
- Bedrock / Vertex / Foundry / gateway 利用者: 更新後、既知のエラーが解消されているか確認する
コード例
作業ディレクトリ外への書き込みを禁止する
{
"permissions": {
"blockWritesOutsideWorkingDirectories": true
}
}
FORCE_HYPERLINK の挙動変更
# Before: ハイパーリンクがオンになっていた
# After : ハイパーリンクがオフになる(no / off も同様)
export FORCE_HYPERLINK=false
フックの if 条件で Monitor ツールに一致させる
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Monitor",
"hooks": [
{
"type": "command",
"if": "Monitor(tail *)",
"command": "./check-tail.sh"
}
]
}
]
}
}
フックの構成は一例です。実際の設定は自身の環境に合わせて調整してください。Monitor ツール起動のシェルコマンドでは、ブロックや確認はできますが、承認や書き換えはできません。
CLAUDE.md への追記例
## 権限・セキュリティ設定
- permissions.blockWritesOutsideWorkingDirectories で作業ディレクトリ外への書き込みを防ぐ(全権限モードで有効)
- sandbox.excludedCommands は、1回の呼び出しに含まれる全コマンドがエントリに一致したときだけ効く
## 環境変数 / フック設定
- FORCE_HYPERLINK=false はハイパーリンクを無効にする
- フックの if 条件 Monitor(...) は Monitor ツールのシェルコマンドに一致する
- Bash ツールでは which は常にシステム版になる
## コンテキスト管理 / フック
- idle compaction: 20万トークン以上の会話をアイドル中に要約する
- PreCompact フックの出力は 10,000 文字で切り詰められる
まとめ
-
新機能:
permissions.blockWritesOutsideWorkingDirectoriesで、全権限モードにおいて作業ディレクトリ外への書き込みを防げる -
セキュリティ修正:
forceRemoteSettingsRefresh、worktree のサンドボックス、--setting-sourcesの除外漏れなどが修正された。管理設定を使う組織は特に確認したい -
挙動変更:
FORCE_HYPERLINK=falseの反転、whichの固定、フックのMonitor(...)一致など、既存設定の結果が変わりうる -
ドキュメントの誤り:
sandbox.excludedCommandsは「全コマンドが一致」したときだけ効く - 互換性: Bedrock・Vertex・Foundry・LLM gateway まわりで、effort 上限、画像過多、ドット区切りモデルIDなど多数の問題が修正された
- idle compaction: 長い会話の再開時にキャッシュ切れのコストを抑えられる
アップデート後は、まず上記の挙動変更に該当する設定がないかを確認することをおすすめします。