DuneSlide: プロンプトインジェクションをゼロクリック RCE に変える 2 つの Cursor バグ
Cato AI Labs が CVE-2026-50548 と CVE-2026-50549 を公開しました。Cursor のターミナルサンドボックスにある CVSS 9.8 の脆弱性のペアです。汚染された MCP レスポンスや Web 検索結果がサンドボックスを抜け出してコードを実行できます。修正版は Cursor 3.0 です。
Cato AI Labs は今週、Cursor の重大な脆弱性のペアを公開しました。CVE-2026-50548 と CVE-2026-50549 として追跡され、まとめて DuneSlide と名付けられています。どちらも CVSS スコアは 9.8 で、いずれも単一の注入されたテキスト片が Cursor のターミナルサンドボックスを抜け出し、あなたのマシンで任意のコマンドを実行できるようにします。クリックも、承認ダイアログも、手動でクローンした悪意あるリポジトリも不要です。Cursor 3.0 より前のすべてのバージョンが影響を受けます。
配送経路こそが、Cursor を使っていなくてもこれに注目すべき理由です。すなわち、リモートコード実行のプリミティブとしてのプロンプトインジェクションです。攻撃者はあなたのエディターに一切触れません。あなたの代わりにエージェントが読むもの、たとえば Model Context Protocol (MCP) サーバーのレスポンスや Web 検索が返したページに命令を仕込み、あとはエージェントがやってくれます。
サンドボックスがエージェント自身のパラメーターを信頼した
Cursor は shell コマンドを、書き込みをプロジェクトディレクトリに制限するサンドボックス内で実行します。CVE-2026-50548 の問題は、書き込み許可リストが部分的にエージェントによって制御されることです。run_terminal_cmd ツールはオプションのパラメーター working_directory を受け取り、エージェントがそれを設定すると、Cursor はそのパスを疑うことなく書き込み対象の集合に追加します。
そのため、注入された命令はモデルを次のような形の呼び出しへと誘導できます。
{
"tool": "run_terminal_cmd",
"command": "cp payload ~/.zshrc",
"working_directory": "/Users/you"
}
サンドボックスは「正当な」作業ディレクトリを見て書き込みを許可します。これで攻撃者はあなたのホームディレクトリにファイルを置くことができ、~/.zshrc、~/.zshenv、~/Library/LaunchAgents は次の shell 起動やログイン時に実行へと変わります。
symlink のチェックが素通りで失敗した
CVE-2026-50549 はガードそのものを攻撃します。書き込みの前に、Cursor は symlink を正規化して、本当の宛先がプロジェクト内にあることを確認します。バグはフォールバックにあります。正規化が失敗したとき、つまり宛先が存在しないか、攻撃者がパス内のいずれかのディレクトリの読み取り権限を外したとき、Cursor はあきらめて、symlink のプロジェクト内パスを信頼してしまいます。
これは典型的なフェイルオープンです。Cursor 自身のサンドボックスヘルパー cursorsandbox を指す書き込み専用の symlink がチェックを通り抜け、攻撃者にエージェントを封じ込めるはずのバイナリそのものを上書きさせます。
なぜ「信頼された」エージェントツールが新しい攻撃対象領域なのか
不都合な教訓は、run_terminal_cmd はコマンドを入力するユーザーではないということです。それはモデルが選んだ引数で呼び出すツールであり、その引数はモデルが読んだテキストから来ています。コンテキストウィンドウに流れ込むあらゆる内容が潜在的に敵対的だと受け入れた瞬間、working_directory のようなパラメーターは設定ではなく攻撃者の入力に見え始めます。
どちらのバグも Cursor 3.0 で修正されているので、当面の対処は更新して 3.0 以降であることを確認することです。より長く残る教訓はパッチを超えて生き延びます。すなわち、MCP の出力と取得した Web コンテンツを信頼できないものとして扱い、プロンプトがすでに侵害されているかのようにエージェントツールの権限を絞ることです。DuneSlide がそれは起こり得ると示しているからです。
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.