sandbox

セキュリティ研究者たちは、Cursor、OpenAIのCodex、GoogleのGemini CLI、Antigravityなど、広く利用されている4つのAIコーディングエージェントのサンドボックスから、サンドボックスを直接攻撃することなく脱出した。

エージェントはサンドボックス内に留まり、すべてのルールに従います。エージェントは単にファイルを作成するだけで、その後、サンドボックス外の信頼できるツールがそのファイルを実行、読み込み、またはスキャンすることで、自動的に脱出が成立します。

脱出の仕組み

Pillar Securityの研究チームであるEilon Cohen氏、Dan Lisichkin氏、Ariel Fogel氏は、数か月にわたりこれらの回避手法を再現し、本日、「Week of Sandbox Escapes」と題したシリーズとして、1日1本のレポートを公開した。

image

これらのサンドボックスは、プロジェクトワークスペース内ではエージェントが信頼され、その外側のホストは保護されるという単純な境界線を引いています。

しかし、ワークスペース内のファイルは単なるデータではないという点が問題です。サンドボックスの外で実行されるツールがそれらを読み取り、処理を行うため、エージェントが書き込みを許可されたファイルが、後にホストが実行するコマンドへと変わる可能性があります。

What developers expect versus what Pillar found: the agent stays sandboxed, but the files it writes are trusted by tools outside the box (Pillar Security)
エージェント自体はサンドボックス内に留まりますが、エージェントが書き込んだファイルは、サンドボックス外のツールによって信頼されてしまいます
(Pillar Security)

IDE や CLI エージェントは、サンドボックスの外で常に独自のツールを実行しています。たとえば、インタプリタを解決する Python 拡張機能、リポジトリをスキャンする Git 統合機能、タスクファイルを実行する VS Code、コマンドを発動するフックエンジン、ローカルソケットを公開する Docker Desktop などです。

サンドボックス化されたエージェントは、与えられたすべてのルールに従いながらも、それらのコンポーネントが読み込むファイルを操作することが可能です。

プロンプトの注入が引き金となります。README、イシュー、依存関係、またはdiffに仕込まれた悪意のある指示は、開発者のマシン上でローカルなアクションとして実行されます。

Pillarは、7つの調査結果を4つの失敗モードに分類しています:

  • オペレーティングシステムの進化に追いつけない「拒否リスト型」サンドボックス
  • 実際には実行可能なコードであるワークスペース設定
  • 引数ではなくコマンド名だけを信頼する「安全な」コマンドの許可リスト、および
  • サンドボックスの外に完全に存在する特権付きローカルデーモン。

バグと修正

問題のほとんどはパッチが適用され、ベンダーからも承認されています。

Cursor では、ワークスペースによって制御される .claude フック設定が、サンドボックス外でのコマンド実行につながっていました。これは現在CVE-2026-48124 として追跡されており、バージョン 3.0.0 で修正されました。

2つ目のCursorのバグでは、エージェントがvirtualenvのインタプリタを編集でき、その結果、エディタのPython拡張機能が検出中にそれを独自に実行してしまうことがありました。

3つ目の脆弱性は、Gitメタデータが必ずしも.gitという名前のフォルダ内に存在する必要がないという事実を悪用し、fsmonitorを通じて実行をトリガーし、Cursorのパスベースのルールをすり抜けていました。これはバージョン3.0.0で修正され、CVEの割り当ては現在保留中です。

Codex CLIでは、「safe」コマンドが名前指定による信頼されたgit showを許可リストに含めていましたが、実際の実行は読み取り専用ではありませんでした。OpenAIはv0.95.0でこれを修正し、高深刻度の報奨金を支払いました。CVEは現在申請中です。

1つのDockerソケットの発見により、Codex、Cursor、Gemini CLIが同時に影響を受けました。エージェントがアクセス可能な特権を持つローカルデーモンが、サンドボックス化されていないコード実行環境となっていました。この問題は現在修正されています。

Googleは2つの

Googleは、2つのAntigravityによる発見(macOS Seatbeltの拒否リストバイパスと、Secure Modeにおける.vscode task-configのバイパス)に対し、より冷静な対応を示した。

Pillar氏によると、Googleはこれら両方を「その他の有効なセキュリティ脆弱性」に分類し、格下げを適用した。ソーシャルエンジニアリングが必要であるか、間接的なプロンプト注入を含むリポジトリをユーザーが信頼する必要があるため、悪用が困難であると判断したためである。

しかしPillar氏によると、Googleのチームは依然としてこの研究を高く評価しており、ある報告書については「極めて質が高い」とのフィードバックがあったと述べている。

古くからある問題、より広範な問題

根本的な問題自体は新しいものではない。4月、Cymulate社は、Claude Code、Gemini CLI、Codex CLIにまたがる同じパターンを「Configuration-Based Sandbox Escape」と名付けて報告しており、これではサンドボックス内で書き込まれたファイルが、次回の起動時にホスト上で実行されてしまう。

新しいのはその広がりだ。同じ脆弱性が、3社のベンダーが提供する4つのツールにまたがって確認されている。

Pillarの修正策は、単に禁止ファイル名のリストを追加するものではありません。エージェントが作成した何かを、信頼されたローカルツールが実行する瞬間を監視する仕組みです。

エージェント型コーディングツールの導入を検討している人にとって、より有用な指標となるのは、エージェントにサンドボックスがあるかどうかではなく、エージェントが残したファイルがその後どうなるかという点です。