ホームへ戻る

AI coding tools / security

Claude Code 2.1.251、シンボリックリンクによる境界外の読み書きを修正し、モデル切り替えフックを追加

Anthropic は、2.1.248 の restricted モード導入に続き、ファイル、プラグイン、設定の信頼境界に関する5種類の問題を修正した。新バージョンではモデル切り替え hook と prompt cache 指標も公開され、企業向けゲートウェイが切り替えをインターセプトし、再キャッシュのコストを追跡できるようになった。

Прикли · CC0 · Image source
zh-Hant

Claude Code 2.1.251 の要点は、一般的な信頼性の修正ではなく、エージェントがローカルファイルシステムと設定レイヤーの間で扱う信頼境界の強化にある。最も直接的な問題は、典型的な TOCTOU(Time-of-check to time-of-use)だ。Read、Write、Edit が権限チェックを完了した後に作業ディレクトリ内のシンボリックリンクが差し替えられると、従来は新しいリンク先をたどり、許可された範囲外のファイルを読み書きできる可能性があった。新バージョンでは、この境界外アクセス経路が遮断された。Grep と Glob も、シンボリックリンク経由で見つかったファイルに `Read(...)` deny ルールを適用するようになった。

そのほかの修正には、プラグイン marketplace で宣言されるコマンドパスも含まれる。プラグインディレクトリ外を指すパスは、path traversal と判定されるようになった。Workflow ツールも、権限チェック前に未許可の `scriptPath` を読み取ったり、エラーメッセージ内で参照したりしなくなった。さらに、プロジェクトレベルの設定から、詳細な beta tracing、raw API body logging、または managed settings で固定された OTLP collector の迂回を有効にすることはできなくなった。これらの変更は、プラグインを自動インストールするチーム、信頼できないリポジトリを処理するチーム、CI 上で Claude Code を実行するチームにとって特に重要だ。

機能面では `PreModelSwitch` と `PostModelSwitch` hook が追加され、モデル切り替えのブロック、確認の要求、注釈の付与が可能になった。`SessionStart` resume hook には、セッションの古さと推定再キャッシュコストも渡される。`/cost` には、セッションごとの cache hit、cache miss、再キャッシュ token 数、cold/warm 状態が追加され、モデル切り替えによって会話全体が再計算される際の可観測性が補強された。

ただし、リリースノートには CVE、攻撃の前提条件、影響を受けるバージョン範囲、PoC(概念実証)が記載されていない。そのため、各修正を実際に悪用された脆弱性とみなすことはできない。それでもエンジニアリングチームはアップグレードを行い、シンボリックリンク、プラグインパス、managed settings に関するテストを再実行すべきだ。また、restricted モードはツールレイヤーの制限にすぎず、コンテナ、OS 権限、シークレットの分離に代わるものではない。

出典

  1. Claude Code v2.1.251 release
  2. Claude Code v2.1.251 release mirror
  3. How Claude Code uses prompt caching