本文へスキップ
MameTechNews
AI

Claude Code 2.1.251未満、macOSで作業フォルダの外へ書き込める

## POINTS

  • 影響は2.1.251未満で、悪用はmacOSかつサンドボックス内で攻撃者のコードが動く場合に限られる。
  • 検証後に親ディレクトリをシンボリックリンクへ差し替え、作業フォルダの外へ書き込ませる。
  • 自動更新の利用者には修正が入っている。手動更新なら2.1.251以降へ上げてから未知のリポジトリを開く。

Claude CodeのEditツールは、書き込み先のパスとシンボリックリンクを、その時点の名前解決だけで確認していた。確認結果はディレクトリのinodeやファイルディスクリプタに結び付いていない。macOSでは、Bashサンドボックスの中で動くプロセスが、検証が終わったあと作業フォルダ内の親ディレクトリをシンボリックリンクへ原子的に差し替えられる。差し替え先は攻撃者が選んだ、利用者が書き込める作業フォルダ外のファイルになる。Editの実装自体はサンドボックスの外で動くため、検証時と書き込み時で指す場所がずれる。

悪用には、サンドボックスの中で攻撃者のコードを動かせることが必要だ。公式の説明では、悪意のあるリポジトリや依存関係のスクリプトがその経路になる。到達条件は、エージェントにそのコードを実行させるところまで進んだ場合である。深刻度はCVSS 4.0で7.7、弱点はリンクの解決不備(CWE-59)とTOCTOU(CWE-367)とされている。

対象はnpmパッケージ@anthropic-ai/claude-codeの2.1.251未満で、修正版は2.1.251である。標準の自動更新を使っている利用者には修正が届いている。手動で更新している場合は、最新版へ上げる。信頼できないリポジトリをClaude Codeに開かせる運用では、バージョン確認を先に行う。アドバイザリは10月26日に公開され、報告者はSunder Singh氏である。