2026年7月1日、AIコーディング環境を狙う2件の攻撃が同日に公開された。ひとつはCursor IDEのゼロクリックRCE「DuneSlide」(Cato Networks)、もうひとつは北朝鮮系のサプライチェーン攻撃「PolinRider」(Socket)だ。どちらも共通しているのは、被害の入口が「本番サーバ」でも「CI」でもなく、開発者の手元のエディタだという点にある。エージェントが外部コンテンツを読むだけ、あるいはリポジトリを開くだけで任意コードが動く。これまでのサプライチェーン記事(CI・自己ホストLLM基盤)とは攻撃面が一段手前に移った、という話として整理する。
結論
| 確認項目 | ニュースの含意 | 直すこと |
|---|---|---|
| Cursorのバージョン | 2.x系はプロンプトインジェクション経由でゼロクリックRCE(CVSS 9.8×2件) | 3.0以降へ更新。エージェントに外部URL/MCP応答を読ませる運用の自動実行を止める |
| 依存パッケージの取得元 | Go/Packagist/npm等108パッケージが汚染、folderOpenで自動起動 |
lockfile固定・provenance検証・エディタのタスク自動実行を無効化 |
| エディタの自動タスク |
.vscode/tasks.jsonのrunOn: folderOpenで開くだけで発火 |
未知リポジトリは自動タスク無効の状態でクローン、開く前に設定ファイルを確認 |
| エージェントの承認境界 | 「読む→実行」が人間の承認を挟まず連結される | 外部コンテンツ参照時のコマンド実行・ファイル書き込みを自動承認しない |
DuneSlide:CursorのゼロクリックRCE(CVE-2026-50548 / CVE-2026-50549)
確認できる事実
Cato NetworksのCato AI Labsが2026年7月1日に公開。Cursor IDEに2件のクリティカルな脆弱性(いずれもCVSS 9.8)があり、連鎖すると事前の権限や特定のユーザー操作なしに開発者マシン上で任意コマンドを実行できる。
原文: "A prompt injection can steer the LLM to set the working_directory to a threat actor-controlled path outside the project scope."
日本語訳: 「プロンプトインジェクションによって、LLMに作業ディレクトリをプロジェクト範囲外の攻撃者制御パスへ設定させられる」(Cato Networks, DuneSlide)
-
CVE-2026-50548:エージェントが読むコンテンツ(MCPコネクタの応答、Web検索結果、依存パッケージのREADME等)に仕込まれたプロンプトが、
working_directoryをプロジェクト外の攻撃者制御パスへ向けさせ、サンドボックス実行ファイル(cursorsandbox)へ書き込ませる。 - CVE-2026-50549:write-onlyのシンボリックリンクを作成し、パス正規化の不備を突いてCursorに解決後のパスをsymlinkパスと誤認させ、範囲外書き込みの保護を回避する。
- 影響を受けるのは Cursor 2.x 系。修正版 Cursor 3.0 は2026年4月2日にリリース済み。
- タイムライン:報告 2月19日 → 一度却下 2月23日 → 再エスカレーション 2月26日 → Cursor 3.0で修正 4月2日 → CVE採番 6月5日 → 一般公開 7月1日。
実務解釈
「ゼロクリック」の意味を取り違えないことが重要だ。ユーザーがリンクを踏む必要はなく、エージェントに信頼できないテキストを読ませた時点でトリガーされうる。つまり、外部URLの要約、MCPサーバ経由の外部データ取得、依存関係のドキュメント参照といった「エージェントに任せて便利になった作業」そのものが攻撃面になる。対策はバージョン更新(3.0以降)が第一だが、それだけでは足りない。「外部コンテンツを読む」と「コマンド実行・ファイル書き込み」の間に人間の承認を必ず挟む設計に戻す——自動承認・自動実行を切ることが、次の同種脆弱性への保険になる。
PolinRider:開いた瞬間に発火するサプライチェーン
確認できる事実
Socket Threat Research Teamが2026年7月1日に公開。北朝鮮系の攻撃活動(Contagious Interview / Famous Chollimaクラスタに関連づけ)が、複数エコシステムへ横断的に拡大していることを報告した。
原文: "162 malicious release artifacts identified across 108 unique packages, including compromise traces in 80 Go modules, 10 Packagist packages, and one Chrome extension."
日本語訳: 「108個のユニークなパッケージにわたる162個の悪性リリース成果物を特定。うち80件のGoモジュール、10件のPackagistパッケージ、1件のChrome拡張に汚染の痕跡」(Socket)
- 横断範囲:Goモジュール80・Packagist(Composer)10・Chrome拡張1、ほかnpmなど(npmの正確な件数は本文に明記なし)。単一エコシステムのスキャンでは取りこぼす。
- 自動起動:VS Codeのタスク定義に
"runOn": "folderOpen"を仕込み、エディタでフォルダを開いた瞬間に実行される。 - 隠蔽:難読化JSを
vite.config.js/eslint.config.jsへ埋め込み、偽の.woff2フォントファイルに偽装。さらにgit履歴の書き換え(force push・過去日付コミット)で悪性変更を古く見せる。 - 第2段:難読化ローダがTRON / Aptos / BNB Smart ChainのパブリックなブロックチェーンRPCから暗号化ペイロードを取得し、埋め込みXOR鍵で復号して
eval()実行。最終ペイロードはRAT(DEV#POPPER)とスティーラー(OmniStealer)。
実務解釈
DuneSlideが「エディタが読むと実行」なら、こちらは「エディタで開くと実行」だ。folderOpenトリガーは、クローンして中身を確認しようとしたその操作で発火する。ブロックチェーンRPCを配信インフラに使う手口はテイクダウン耐性が高く、単純なドメインブロックでは止まらない。防御は静的な「怪しいパッケージを避ける」から、取得の起源検証(provenance)とエディタ側の自動実行抑止へ寄せる必要がある。特にGo/PHP/npm/Chrome拡張を横断するため、言語ごとのスキャナを個別に回すだけでは全体像が見えない。
実装チェックリスト
エディタ / エージェント側
- Cursorを3.0以降へ更新(2.x系を残さない)
-
VS Code系エディタで、未知リポジトリを開く前にタスク自動実行を無効化(
security.workspace.trustを有効に保つ/folderOpenタスクの自動実行を許可しない) - エージェントが外部URL・MCP応答・依存READMEを読む経路で、コマンド実行とファイル書き込みを自動承認にしない
-
クローン直後に
.vscode/tasks.json・*.config.js(vite/eslint等)を目視確認してから開く
依存パッケージ側
-
lockfileを固定し、
--ignore-scripts等でインストール時スクリプトの自動実行を抑止 - Go / Packagist / npm / Chrome拡張を横断でスキャン(単一エコシステムのスキャナに頼らない)
- パッケージのprovenance(署名・出所)を検証、force pushや不自然な過去日付コミットの履歴を確認
-
既知IoC(DEV#POPPER / OmniStealer、汚染例
Xpos587/git2md・Xpos587/markfetch等)と手元の依存を照合
失敗パターン
パターン1:バージョンを上げて対応完了とする → 対策:Cursor 3.0更新は既知2件の穴を塞ぐだけ。攻撃の本質は「外部コンテンツを読む→自動実行」の連結にあり、承認境界を戻さなければ次の同型脆弱性で再発する。
パターン2:npmだけスキャンして安心する → 対策:PolinRiderの主戦場はGoモジュール(80件)とPackagist。言語横断でスキャンしないと汚染の大半を見逃す。
パターン3:「怪しいリポジトリは開かなければ良い」と考える → 対策:folderOpenは開いた瞬間が発火点。レビュー目的で開く行為自体がトリガーになるため、ワークスペース信頼と自動タスク無効を既定にする。
参考リンク
- Cato Networks: DuneSlide — Two Critical RCE Vulnerabilities in Cursor
- Socket: PolinRider — North Korea-Linked Supply Chain Campaign Expands
この記事を書いた人✏️@YushiYamamoto
ITPRODX.com代表 / AIアーキテクト
Next.js / TypeScript / n8nを活用した自律型アーキテクチャ設計を専門としています。
日々の自動化の検証結果や、ビジネス側の視点(ROI等)に関するより深い考察は、以下の公式サイトおよびnoteで発信しています。
