Cursor の RCE 脆弱性 DuneSlide(CVE-2026-50548/50549)- プロンプトインジェクションがサンドボックスを破るとき

Cursor の RCE 脆弱性 DuneSlide(CVE-2026-50548/50549)- プロンプトインジェクションがサンドボックスを破るとき

作成日:
読了:14
更新日:

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 ヘルパーのパスは次の場所です。

サンドボックスヘルパーの位置(macOS)
/Applications/Cursor.app/Contents/Resources/app/resources/helpers/cursorsandbox

DuneSlide の2つの CVE は、いずれも「本来プロジェクトディレクトリ内に限定されるはずの書き込み」を、このヘルパーバイナリのようなプロジェクト外の重要ファイルへ届かせるための、別々の抜け道です。

2つのCVEの違い

項目CVE-2026-50548CVE-2026-50549
根本原因run_terminal_cmdworking_directory パラメータパス正規化(canonicalization)のフォールバック
悪用の中身LLM が制御可能な working_directory が検証なしにサンドボックスの書き込み許可リストへ追加されるプロジェクト内に外部ファイルを指す symlink を作らせ、正規化失敗時に元の symlink パスを信用させる
攻撃者が得るものプロジェクト外の任意パスへの書き込みプロジェクト外ファイルへの書き込み(out-of-bounds write 保護の回避)
典型的な標的cursorsandbox バイナリ、~/.zshrc~/.zshenv~/Library/LaunchAgentscursorsandbox バイナリなど外部ファイル
修正確認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 といったシェル設定ファイルや自動起動の仕組みを書き換える経路も指摘されています。これらは次回のシェル起動やログイン時に攻撃者コードを走らせる、古典的だが強力な永続化手段です。

もう一つは、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 でこう頼んだ場合を考えます(以下は仕組みを示すダミー例です)。

  1. 開発者: 「この API のレート制限まわりの実装、最新のベストプラクティスを調べて直して」と、ごく普通のプロンプトを打つ。
  2. エージェントは Web検索を行うか、接続済みの MCP サーバから情報を取得する。この外部コンテンツの中に、攻撃者が仕込んだ指示文が紛れている。
  3. エージェントはユーザーの代理としてそのコンテンツを読む。混入した指示(プロンプトインジェクション)に従い、run_terminal_cmdworking_directory を細工する(CVE-2026-50548)、あるいはプロジェクト内に外部ファイルへの symlink を作る(CVE-2026-50549)。
  4. その書き込みで cursorsandbox ヘルパーを上書きし、サンドボックスを無力化する。
  5. 同じインジェクションの後続指示が、サンドボックス外で任意コマンドとして実行される。結果はホストの完全な侵害、そして接続された 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 正規化失敗時の危険なフォールバックという、独立した抜け道です。

いま取るべき行動はシンプルです。

  1. Cursor を 3.0 以降へアップグレードする(3.0 より前は全バージョン影響あり)。
  2. エージェントが読む外部コンテンツ(MCP・Web検索結果)を信頼境界の外として扱う。
  3. サンドボックスを唯一の防御にせず、ファイル変更・コマンド実行への明示承認など多層防御を敷く。

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
Node.js が一気に塞いだ「TLSホスト名検証バイパス」4種 - 2026年6月の緊急アップデートを読み解く

Node.js が一気に塞いだ「TLSホスト名検証バイパス」4種 - 2026年6月の緊急アップデートを読み解く

12

2026年6月18日のNode.jsセキュリティリリースは、HIGH 2件を含む12件のCVEを全アクティブライン(22/24/26)で一斉修正しました。中でも目立つのは、ワイルドカード証明書を回避する CVE-2026-48618(Unicodeドット問題)を筆頭にしたTLSホスト名検証バイパスの集中修正です。なぜ「ホスト名を正しく比較する」だけのことがこれほど壊れやすいのか、各CVEの仕組みと、いま実務でやるべきことを整理します。

プロンプトインジェクションがRCEになる日 - AIエージェントとMCPが攻撃対象になった2026年

プロンプトインジェクションがRCEになる日 - AIエージェントとMCPが攻撃対象になった2026年

10

2026年5月に相次いだAIエージェントフレームワークとMCPの脆弱性を整理します。Semantic Kernelのプロンプトインジェクション→RCE(CVE-2026-26030 / CVE-2026-25592)や、MCPのSTDIOトランスポート設計に起因するRCE群を題材に、「LLMはセキュリティ境界ではない」という原則と、いま打つべき防御策をまとめます。