0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントに実行権限を渡す前の境界チェック:computer use一般化とCursor重大RCE(CVSS 9.8)から

0
Posted at

Abstract visualization of an AI agent execution boundary

2026年6月24日、GoogleはブラウザやOSを操作する「computer use」を、単体の専用モデルではなくGemini 3.5 Flashの組み込みツールとして提供開始した。その1週間後の7月1日、Cato Networksはエディタ「Cursor」に対する2件のCVSS 9.8脆弱性「DuneSlide」を公開している。実環境を操作する権限をエージェントに渡す流れと、その権限が間接プロンプトインジェクションで乗っ取られる現実が、ほぼ同じ週に並んだ。

さらに6月29日にはCursorのiOSアプリが公開され、エージェントが手元にいない状態でも動き、スマホからPRをマージできるようになった。共通する論点は一つで、「エージェントに実行権限を渡す境界をどう設計するか」だ。この記事は、その境界を今日見直すためのチェックリストとしてまとめる。

結論

確認項目 ニュースの含意 直すこと
computer useのネイティブ化(Gemini 3.5 Flash) 実環境操作エージェントが一次ツール化し、API 1本で組める 操作対象(ブラウザ/デスクトップ/モバイル)ごとに許可する操作範囲を明示設計する
間接プロンプトインジェクション→RCE(Cursor DuneSlide) LLM制御下のパラメータを権限境界に流用すると乗っ取られる 非信頼入力(MCP応答・Web検索結果)を承認なしで実行させない/Cursorは3.0以降へ
エージェントの無人実行(Cursor iOS / Remote Control) 人が同席せずエージェントが動き、PRマージまで到達しうる 承認境界とRemote Controlの有効化ガバナンスを先に決める

computer useがモデルの「組み込みツール」になった(Gemini 3.5 Flash)

確認できる事実

  • 2026年6月24日、Googleは公式ブログでcomputer useをGemini 3.5 Flashの組み込みツールとして提供開始した。従来は単体のGemini 2.5 computer-useモデルとして提供されていた機能が、汎用モデルのツールに統合された形になる。
  • エージェントはブラウザ・モバイル・デスクトップ環境をまたいで「見て、推論し、操作する」と説明されている。
  • 提供経路はGemini APIおよびGemini Enterprise Agent Platform。デモ環境はBrowserbase上でホストされている。

原文: "Computer use is now a built-in tool supported in Gemini 3.5 Flash, delivering our best performance yet for agentic computer use tasks."
日本語訳: 「computer useはGemini 3.5 Flashでサポートされる組み込みツールになり、エージェント的なcomputer useタスクで当社最高の性能を提供する」(Google公式ブログ)

実務解釈

  • 「別モデルを呼び分ける」必要が消え、通常のツール呼び出しと同じ枠組みでブラウザ/OS操作エージェントを組めるようになった。参入コストが下がったぶん、後述のセキュリティ境界の設計責任は開発側に寄る。
  • 価格やベンチマーク(OSWorld等)については、複数の二次報道が「GPT-5.5の約1/3の価格」「スコアはほぼ同等」と伝えているが、公式ブログ本文に具体的な数値の明示はない。採用判断は二次情報の数字を鵜呑みにせず、自社ワークロードでの実測(長時間タスクの成功率・コスト)で決めるのが安全だ。

実環境操作の「代償」を見せたCursorの重大RCE(DuneSlide)

確認できる事実

  • 2026年7月1日、Cato Networks(Cato AI Labs)がCursorに対する2件の重大脆弱性を「DuneSlide」として公開した。CVE-2026-50548とCVE-2026-50549、いずれもCVSS 9.8(Critical)。
  • CVE-2026-50548: サンドボックスが、LLMの制御下にあるオプションのworking_directoryパラメータの非デフォルトパスを、検証なしで書き込み許可リストに追加していた。これによりサンドボックス実行ファイル自体を上書きし、サンドボックスを無効化できる。
  • CVE-2026-50549: シンボリックリンクの正規化(canonicalization)が失敗したとき、検証前の元のsymlinkパスにフォールバックする実装不備。プロジェクト外のシステムファイルを上書きできる。
  • 攻撃経路は間接プロンプトインジェクションで、悪意あるMCPサーバー応答やpoisoned web search result経由。ユーザーの承認を要さないzero-clickでトリガーされうる。
  • 修正はCursor 3.0(2026年4月2日リリース)で提供済み。3.0未満の全バージョンが影響を受ける。

原文: "Both bugs are patched in Cursor 3.0, released April 2, and every version before 3.0 is affected."
日本語訳: 「両方のバグはCursor 3.0(4月2日リリース)で修正済みで、3.0より前の全バージョンが影響を受ける」(Cato Networks)

なお、公開日の7月1日はブログ公表日であり、ベンダーへの脆弱性報告自体はより早い時期(2026年2月)に行われている。パッチが4月に出ていたにもかかわらず、旧バージョンを使い続けていた環境がリスクにさらされ続けていた、という点が実務上の教訓になる。

実務解釈

  • 根因は「LLMが自由に指定できる値(working_directory)を、そのまま権限境界の決定に使ってしまった」ことに尽きる。エージェントに実環境操作をさせるなら、モデル出力に含まれるパス・コマンド・宛先は常に「非信頼入力」として扱い、権限境界の外で検証する必要がある。
  • symlink正規化の失敗時に元パスへフォールバックする挙動は、典型的なfail-open(失敗時に開いてしまう)だ。検証に失敗したら操作を止める(fail-close)のが原則で、これはcomputer useエージェント全般に効く設計指針でもある。

エージェントが手元を離れる(Cursor iOS / Remote Control)

確認できる事実

  • 2026年6月29日、Cursorは公式ブログでiOSアプリをpublic betaとして公開した。全有料プランで利用できる。
  • クラウドエージェントは隔離VM上のフル開発環境で稼働し、変更のテスト・検証・デモを行える。
  • Remote Controlにより、ローカルのデスクトップで実行中のエージェントをスマホから継続操作できる。音声入力でのタスク記述、任意のフロンティアモデルの選択、アプリ内からのPRマージにも対応する。
  • Teams / Enterpriseプランでは、Remote Controlを管理者がダッシュボードから有効化する必要がある。

原文: "Cursor for iOS is available now in public beta on all paid plans."
日本語訳: 「Cursor for iOSは全有料プランで、現在public betaとして利用できる」(Cursor公式ブログ)

実務解釈

  • エージェントの実行が「デスク常駐」から切り離され、無人・遠隔で走るのが前提になる。PRマージまでモバイルから到達できるということは、レビューと承認の境界を人間側で明示的に握っておかないと、ガバナンスの穴になる。
  • Teams / EnterpriseでRemote Controlに管理者有効化が必要なのは、この境界を組織として制御するための設計だ。導入時は「誰が・どのリポジトリで・どこまで自動実行を許すか」を先に決め、Remote Controlの有効化はそれに合わせる。

実装チェックリスト

computer useを導入する前に:

  • エージェントに許可する操作対象(ブラウザのみ / デスクトップ / モバイル)を明示的に絞る
  • モデル出力に含まれるパス・コマンド・URL・宛先を「非信頼入力」として、権限境界の外で検証する
  • 破壊的操作(ファイル書き込み・削除・送信・支払い)は人間承認を挟む境界を用意する

非信頼入力の遮断:

  • MCPサーバー応答やWeb検索結果を、承認なしでそのまま実行経路に流さない
  • 書き込み許可リストにLLM制御下のパスを動的追加しない(許可先は静的に固定する)
  • symlink・パス正規化に失敗したら操作を止める(fail-close)。失敗時にフォールバックで開かない

バージョンとパッチ:

  • Cursorを3.0以降に更新する(3.0未満はDuneSlideの影響を受ける)
  • エージェント統合IDE・ツールのバージョンとCVEを棚卸しし、パッチ提供済みでも未適用の環境を洗い出す

無人実行のガバナンス:

  • 「誰が・どのリポジトリで・どこまで自動実行を許すか」を先に決める
  • Remote Controlなど遠隔実行機能は、組織のダッシュボード側で有効化を管理する
  • PRのマージ・本番反映には、モバイルからでも外せないレビュー境界を残す

失敗パターン

パターン1:LLMが指定した値をそのまま権限境界に使う → 対策:working_directoryのようなモデル制御下のパラメータを、書き込み許可リストやサンドボックス設定に直結させない。許可境界は静的に固定し、モデル出力は境界の外で検証する。DuneSlideのCVE-2026-50548はこの直結が根因だった。

パターン2:非信頼な外部入力を承認なしで実行させる → 対策:MCP応答やWeb検索結果は間接プロンプトインジェクションの入口になる。これらを実行経路に流す前に、承認ステップか隔離を挟む。zero-clickで到達される前提で設計する。

パターン3:検証失敗時にfail-openする → 対策:symlink正規化やパス検証が失敗したら、元パスへフォールバックせず操作を止める。「失敗したら閉じる」をデフォルトにする。

パターン4:パッチ提供済みでも更新を後回しにする → 対策:DuneSlideの修正は4月に出ていたが、7月の公開時点で3.0未満の全バージョンが対象だった。エージェントツールはバージョンとCVEを定期棚卸しし、「提供済み=安全」ではなく「適用済み=安全」で管理する。

参考リンク

この記事を書いた人✏️@YushiYamamoto
ITPRODX.com代表 / AIアーキテクト
Next.js / TypeScript / n8nを活用した自律型アーキテクチャ設計を専門としています。
日々の自動化の検証結果や、ビジネス側の視点(ROI等)に関するより深い考察は、以下の公式サイトおよびnoteで発信しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?