はじめに
Anthropic は 2026年9月11日、Claude Code の新バージョン v2.1.269 をリリースしました。今回の目玉は、プラグインの品質を定量的に検証できる claude plugin eval コマンドの追加ですが、それ以上に注目すべきは 権限・セキュリティまわりの複数の重要な修正 です。
特に「! で始まる deny/ask ルールの適用範囲の誤り」と「Bash の tee コマンドが書き込み制限をすり抜けていた問題」は、権限ルールでリポジトリや機密ファイルへのアクセスを制御しているチームにとって見過ごせない内容です。本記事では、このリリースの変更点を整理し、「何が変わったか」「なぜ重要か」「どう対応すべきか」をまとめます。
📌 影響を受ける人
settings.jsonなどで!を使った deny/ask 権限ルールを組んでいる人Bash(tee:*)を allow ルールに含めているチーム・組織- プラグインを配布・利用している開発者
- OTEL や Bedrock/Vertex/ゲートウェイ経由で Claude Code を運用しているインフラ担当者
変更の全体像
v2.1.269 の変更は大きく4つの系統に分類できます。
セキュリティ・権限修正(赤枠)は severity: high かつ action_required: true が付いており、他のカテゴリより優先して確認すべき内容です。
変更内容
1. claude plugin eval(新機能・重要度高)
プラグインの eval スイートを実行し、スコア付きで再現可能な結果を JSON + HTML レポート として出力できるコマンドが追加されました。
claude plugin eval --help
プラグイン開発者がこれまで手動やアドホックなスクリプトで行っていた品質検証を、標準化されたコマンドで定量的に行えるようになります。プラグインエコシステムの品質保証基盤として今後の中心になりそうです。
2. 権限・セキュリティ関連の修正(重要度高・対応必須)
| 項目 | 修正前の問題 | 修正後の挙動 |
|---|---|---|
! 否定ルール |
設定ソースを越えて適用されていた | 自身のソース内のみに適用。単独の ! 否定は無視 |
Bash(tee:*) |
tee 経由の書き込みが deny ルールを迂回できた |
作業ディレクトリ外への書き込みは allow ルールでカバーされなくなった |
| プラグインアーカイブ | 他ローカルユーザーから読める/world-writableビットが残る/再展開時に古いファイルが残存 | 権限を適切に絞り、再展開時にクリーンアップ |
--output-format stream-json |
パススコープの deny でブロックされた Read/Edit/Write が permission_denials に含まれない |
ブロック内容が正しく記録される |
| gRPC テレメトリ承認ダイアログ | スキーム無しエンドポイントのコレクタ名が非表示 | コレクタ名を表示 |
headersHelper 同意プロンプト |
URLパスが別ホストに誤読される表示 | 表示を修正 |
| 組織ポリシー | 別プロセスが同時にログイン更新すると読み込まれない | 正しく反映されるよう修正 |
3. CLI の新機能・調整項目
-
/output-style [name]:出力スタイルの一覧・切替(Remote Control・クラウド・ヘッドレスでも利用可) - Bash ツールの編集で変更ファイルの diff を表示(
bashEditDiffEnabled) -
OTEL_METRICS_INCLUDE_REPOSITORY:OpenTelemetry にvcs.*属性を付与 -
CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS:LLM ゲートウェイの/v1/models検出タイムアウトを延長可能 -
CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS(1〜256):Workflow ツールの同時エージェント数上限を調整可能
4. キャッシュ・セッション継続性の修正
出力トークン上限での自動再開時にプロンプトキャッシュが部分的に無効化される問題、思考中断後の再開でキャッシュ再利用が損なわれる問題、コンパクション後の git status がセッション開始時のまま固定される問題など、長時間セッションや大きめのプロンプトを扱うユーザーに直接効く修正が多数含まれます。また /goal が API エラーなどで無言停止する問題も修正され、バックオフ付きリトライまたは理由付き一時停止に変わりました。
5. リモート/ヘッドレス・プラグイン・MCP関連
- リモート/ヘッドレスセッションが実行中でも「waiting for your input」と誤報告する問題を修正(
CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0で旧動作に戻せる) -
shutdownを拒否するプラグイン LSP サーバ(rust-analyzer 等)がセッション終了後も残留する問題を修正 - Bedrock/Vertex/Foundry/ゲートウェイ環境で
/insightsが失敗する問題を修正
影響と対応
⚠️ Breaking Change
Bash(tee:*)の allow ルールを組んでいる場合、修正後は作業ディレクトリ外への書き込みをカバーしなくなります。CI や自動化スクリプトがteeを使って外部パスに出力している場合は、意図した書き込みも拒否される可能性があるため、権限設定を見直してください。
⚠️ Breaking Change
単独の!否定ルールはこれまで意図せず広い範囲に適用されていましたが、修正後は無視されます。誤って!だけを deny/ask に書いていた設定は、更新後に想定通り機能しなくなる可能性があるため、settings.jsonを確認してください。
対応チェックリスト:
-
settings.json(user/project/local)で!単独ルールやBash(tee:*)の allow ルールを使っていないか確認 -
プラグインを配布している場合、
claude plugin evalで品質を検証する運用を追加検討 -
OTEL でリポジトリ属性を利用したい場合は
OTEL_METRICS_INCLUDE_REPOSITORYを有効化 -
Workflow で推論律速のファンアウトを行っている場合、
CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTSの調整を検討 - 長時間セッションで応答が失われた経験がある場合はアップデートで解消される可能性が高い
コード例
tee 経由の書き込み制御(Before / After)
Before(修正前の想定挙動)
// settings.json
{
"permissions": {
"allow": ["Bash(tee:*)"],
"deny": ["Write(./secrets/**)"]
}
}
修正前は tee を使えば deny の書き込み制限や作業ディレクトリ外パスチェックをすり抜けられるケースがありました。
# deny設定を迂回してしまっていた例(修正前)
cat leaked.txt | tee ../outside-workdir/leak.txt
After(修正後)
# 作業ディレクトリ外への書き込みは allow ルールでカバーされなくなり、
# Edit()のdenyルール・書き込みパスチェックがteeにも適用される
cat leaked.txt | tee ../outside-workdir/leak.txt
# => permission denied(想定通り拒否される)
plugin eval の基本的な使い方
# プラグインディレクトリでevalスイートを実行
claude plugin eval --help
# 実行するとJSON/HTMLレポートが出力され、
# スコア付きで再現可能な評価結果を確認できる
まとめ
v2.1.269 は機能追加よりも 足元の権限・セキュリティ・安定性を固めるリリースという性格が強いバージョンです。
-
claude plugin evalによりプラグインの品質検証が標準化された -
!ルールとteeの権限迂回という、実運用上見落としやすい抜け穴が塞がれた(要設定見直し) - プロンプトキャッシュ・セッション再開まわりの修正で長時間セッションの体験が改善
- VSCode拡張・Web版・Claude Tag(Slack連携)にも細かな改善が多数
権限ルールで tee や ! を使っている場合は、アップデート前に一度 settings.json を見直しておくことをおすすめします。