
Cursor の RCE 脆弱性 DuneSlide(CVE-2026-50548/50549)- プロンプトインジェクションがサンドボックスを破るとき
AIコーディングツールの「サンドボックス」は、AIが暴走してもホストを守る最後の砦のはずでした。ところが2026年6月から7月にかけて、その砦そのものを内側から壊せる脆弱性が公表されました。Cato Networks(Cato AI Labs)が「DuneSlide」と名付けた、Cursor IDE の2つの重大な RCE 脆弱性です。
当ブログでは以前、プロンプトインジェクションがRCEになる仕組みやデシリアライズ由来の実攻撃事例を追ってきました。DuneSlide はその延長線上にありながら、標的が「AIコーディングIDEのサンドボックス機構そのもの」である点が新しい事案です。
NOTE
本記事のバージョン番号・日付・CVSS などの数値は、2026年7月時点で Cato Networks の一次ブログおよび CSO Online の報道で確認した内容です。今後の追加公表で変わる可能性があります。
概要(まず結論)
- 何が: Cursor IDE に2つの重大な RCE 脆弱性。総称「DuneSlide」。
- CVE: CVE-2026-50548(working_directory の悪用)と CVE-2026-50549(symlink 解決のフォールバック悪用)。
- 深刻度: いずれも CVSS 9.8(Critical)。
- 影響範囲: Cursor 3.0 より前の全バージョン。
- 修正版: Cursor 3.0(2026年4月2日リリース)。両脆弱性とも 3.0 で修正済み。
- 攻撃の起点: ゼロクリックのプロンプトインジェクション。利用者が無害なプロンプトを打つだけで、MCP サーバや Web検索結果など信頼できない外部コンテンツに混入した攻撃者ペイロードをエージェントが読み込み、発火する。
- 最終結果: サンドボックス脱出 → サンドボックス外での任意コード実行(RCE)→ ホストマシンおよび接続された SaaS ワークスペースの完全な侵害。
対策の要点を先に言えば、Cursor 3.0 以降へアップグレードすること、そして「AIエージェントが読む外部コンテンツを信頼境界の外として扱う」設計に切り替えることです。詳細は後述します。
何が起きたのか
Cursor は Fortune 500 の半数以上で使われるとされる人気のAIコーディングIDEです。Cato AI Labs は、その Cursor のサンドボックス機構に2つの独立した欠陥を発見しました。
両者に共通する攻撃の構図は、これまでの AIエージェント RCE と同じです。
プロンプトインジェクションで AI の入力を操れる + AI がツール(ターミナル実行やファイル書き込み)を呼べる = 攻撃者がコード実行できるただし DuneSlide が巧妙なのは、AI がいきなり悪意あるコマンドを実行するのではなく、まずサンドボックスの「番人」自身を書き換える点です。Cursor はターミナルコマンドを cursorsandbox というヘルパーバイナリ経由でサンドボックス実行しています。このバイナリを上書きできれば、以降のコマンドはサンドボックスの制約なしに実行されます。つまり、書き込み権限の脱出が、そのまま実行権限の脱出に化けます。
macOS 上での cursorsandbox ヘルパーのパスは次の場所です。
/Applications/Cursor.app/Contents/Resources/app/resources/helpers/cursorsandboxDuneSlide の2つの CVE は、いずれも「本来プロジェクトディレクトリ内に限定されるはずの書き込み」を、このヘルパーバイナリのようなプロジェクト外の重要ファイルへ届かせるための、別々の抜け道です。
2つのCVEの違い
| 項目 | CVE-2026-50548 | CVE-2026-50549 |
|---|---|---|
| 根本原因 | run_terminal_cmd の working_directory パラメータ | パス正規化(canonicalization)のフォールバック |
| 悪用の中身 | LLM が制御可能な working_directory が検証なしにサンドボックスの書き込み許可リストへ追加される | プロジェクト内に外部ファイルを指す symlink を作らせ、正規化失敗時に元の symlink パスを信用させる |
| 攻撃者が得るもの | プロジェクト外の任意パスへの書き込み | プロジェクト外ファイルへの書き込み(out-of-bounds write 保護の回避) |
| 典型的な標的 | cursorsandbox バイナリ、~/.zshrc、~/.zshenv、~/Library/LaunchAgents | cursorsandbox バイナリなど外部ファイル |
| 修正確認 | 2026年4月1日 | 2026年6月1日 |
CVE-2026-50548: working_directory が書き込み許可に直結する
Cursor のターミナル実行ツール run_terminal_cmd には、任意指定の working_directory パラメータがあります。問題は、この値がLLM が制御できるパラメータでありながら、Cato の表現を借りれば「サンドボックスの書き込み許可リストに無検証でそのまま追加される(blindly added to the sandbox's allowed write list)」ことでした。
プロンプトインジェクションで LLM を誘導し、working_directory をプロジェクトルート外の攻撃者指定パスに設定させれば、サンドボックスはそのパスへの書き込みを許してしまいます。標的が cursorsandbox なら、Cato の言うとおり「以降のコマンドがサンドボックス制約なしに実行される(future commands run without sandbox restrictions)」状態になり、同じインジェクションセッション内の後続指示がサンドボックス外の RCE に化けます。
標的は cursorsandbox だけではありません。~/.zshrc や ~/.zshenv、~/Library/LaunchAgents といったシェル設定ファイルや自動起動の仕組みを書き換える経路も指摘されています。これらは次回のシェル起動やログイン時に攻撃者コードを走らせる、古典的だが強力な永続化手段です。
CVE-2026-50549: symlink 正規化の「危険なフォールバック」
もう一つは、Cursor のパス解決ロジックにある独立した欠陥です。
エージェントに、プロジェクトディレクトリの内側から外側のファイルを指す symlink を作らせます。Cursor はパスを正規化(canonicalization)して境界チェックを行いますが、対象パスに読み取り権限がないなどで正規化が失敗すると、Cato の表現で「元の symlink パス(プロジェクト内)をそのまま信用するフォールバックに落ちる(fall back to using the original symlink path inside the project directory)」挙動をしていました。
攻撃者はこれを逆手に取り、あえて書き込み専用(write-only)の symlinkを作ることで正規化を失敗させ、「解決後のパスは symlink のパス(=プロジェクト内で安全)」だと Cursor に思い込ませます。実際の書き込み先は symlink の指す外部ファイル(例: cursorsandbox)です。こうして out-of-bounds write の保護をすり抜け、Write ツールで外部ファイルを上書きできてしまいます。
攻撃シナリオ(ゼロクリック)
DuneSlide の怖さは、利用者が「悪いリンクを踏む」といった明示的な操作を必要としない点です。Cato はこれをゼロクリックのプロンプトインジェクションと呼んでいます。攻撃者が事前の権限や特別なユーザー操作を必要としない、と明記されています。
例として、Example Inc. の開発者が Cursor でこう頼んだ場合を考えます(以下は仕組みを示すダミー例です)。
- 開発者: 「この API のレート制限まわりの実装、最新のベストプラクティスを調べて直して」と、ごく普通のプロンプトを打つ。
- エージェントは Web検索を行うか、接続済みの MCP サーバから情報を取得する。この外部コンテンツの中に、攻撃者が仕込んだ指示文が紛れている。
- エージェントはユーザーの代理としてそのコンテンツを読む。混入した指示(プロンプトインジェクション)に従い、
run_terminal_cmdのworking_directoryを細工する(CVE-2026-50548)、あるいはプロジェクト内に外部ファイルへの symlink を作る(CVE-2026-50549)。 - その書き込みで
cursorsandboxヘルパーを上書きし、サンドボックスを無力化する。 - 同じインジェクションの後続指示が、サンドボックス外で任意コマンドとして実行される。結果はホストの完全な侵害、そして接続された SaaS ワークスペースへの波及。
ポイントは、AI は「設計どおり」動いているだけ、ということです。自然言語の指示をツール呼び出しに変換しているに過ぎません。問題はそのツールに与えられた権限と、AI が読み込むコンテンツの信頼性にあります。これは以前の記事で紹介した Microsoft の原則、「あなたの LLM はセキュリティ境界ではない」とまったく同じ教訓です。
対策・確認方法
1. まず Cursor 3.0 以降へアップグレードする
最優先は修正版へのアップデートです。DuneSlide の両脆弱性は Cursor 3.0(2026年4月2日リリース)で修正されています。3.0 より前の全バージョンが影響を受けます。3.0 の内容はCursor 3.0 リリースの記事も参照してください。
現在のバージョンは Cursor のメニューから確認できます(アプリのバージョン表示)。3.0 より前であれば、公式ダウンロードから最新版へ更新してください。
WARNING
「3.0 未満」の全バージョンが対象です。長期間アップデートしていない環境ほど危険です。CI や共有開発環境で古い Cursor を固定している場合は特に注意してください。
2. AIエージェントが読む外部コンテンツを信頼境界の外に置く
CSO Online が整理する対策の柱は多層防御(layered defense)です。パッチ適用に加えて、次の考え方を運用に組み込むことが推奨されています。
- 信頼境界の再定義: MCP サーバや Web検索結果など、エージェントが取り込む外部コンテンツはすべて「信頼できない入力」として扱う。接続する MCP の提供元を吟味する。
- 自動実行を絞る: サンドボックスだけに頼らず、ファイル変更やコマンド実行に明示的なユーザー承認を要求する(Human-in-the-loop)。auto-run/自動承認の常用は攻撃面を広げる。
- 権限の最小化: サンドボックスの書き込み許可をプロジェクトディレクトリに適切に限定する。granular access controls(粒度の細かいアクセス制御)を効かせる。
CSO Online が引く専門家の指摘どおり、「プロンプトインジェクションからAIツールを守るのは非常に難しく、通常はモデル内蔵のガードレール、キーワードフィルタ、コンテキスト分割、細かいアクセス制御、そして人間をループに戻すことを組み合わせた多層的アプローチが必要」です。単一の防御に依存しないことが肝要です。
3. サンドボックスは「境界」ではなく「一層」だと捉える
DuneSlide が突きつけたのは、サンドボックス自体が書き換え可能なら、それはもう境界ではないという事実です。AIコーディングツールを扱ううえでの原則を、あらためて整理します。
- LLM の出力をそのまま特権操作(ファイル書き込み・コマンド実行)に流さない。
- ツールに渡すパラメータ(
working_directoryのような「どこに書くか」を決める値)を LLM に自由に制御させない、あるいは検証する。 - symlink やパス正規化のような「解決後のパス」を扱う処理では、フォールバックで安全側に倒れることを確認する(今回はフォールバックが危険側に倒れていた)。
これらはパストラバーサル系の CVE(例: pnpm patch のパストラバーサル)とも地続きの、古典的だが本質的な設計課題です。
開示のタイムライン
Cato の公表によると、責任ある開示(responsible disclosure)の経緯は次のとおりです。当初は「脅威モデルが MCP の悪用を想定していない」として一度リジェクトされ、再エスカレーション後に修正へ至った点が特徴的です。
| 日付(2026年) | 出来事 |
|---|---|
| 2月19日 | Cursor へ初回報告 |
| 2月23日 | 初回リジェクト(当時の脅威モデルが MCP 悪用を想定せず) |
| 2月26日 | セキュリティチームへエスカレーション、再オープン |
| 4月1日 | working_directory 側(CVE-2026-50548)の修正を確認 |
| 4月2日 | Cursor 3.0 リリース |
| 6月1日 | symlink 側(CVE-2026-50549)の修正を確認 |
| 6月5日 | CVE ID 採番 |
まとめ
DuneSlide(CVE-2026-50548 / CVE-2026-50549、いずれも CVSS 9.8)は、ゼロクリックのプロンプトインジェクションから始まり、Cursor のサンドボックスヘルパー cursorsandbox を書き換えて、サンドボックス外の RCE とホストの完全侵害に至る脆弱性でした。2つの CVE はそれぞれ、LLM が制御できる working_directory の無検証追加と、symlink 正規化失敗時の危険なフォールバックという、独立した抜け道です。
いま取るべき行動はシンプルです。
- Cursor を 3.0 以降へアップグレードする(3.0 より前は全バージョン影響あり)。
- エージェントが読む外部コンテンツ(MCP・Web検索結果)を信頼境界の外として扱う。
- サンドボックスを唯一の防御にせず、ファイル変更・コマンド実行への明示承認など多層防御を敷く。
AIコーディングツールは、便利さと引き換えに「AIがツールを操作する」という新しい攻撃面を持ち込みます。Cato も指摘するとおり、これは Cursor 単体の問題というより、AIコーディングエージェント全般に共通するシステミックな課題です。サンドボックスを過信せず、AIに渡す権限と、AIに読ませるコンテンツの両方を疑う姿勢が求められます。
参考
- Cato Networks(Cato AI Labs): DuneSlide: Two Critical RCE vulnerabilities(一次情報)
- CSO Online: Sandbox bypass flaws in Cursor IDE highlight prompt injection as an RCE vector
- The Hacker News: Critical Cursor Flaws Could Let Prompt Injection Escape Sandbox and Run Commands


