Cursor、Windsurf、Google Antigravityがマルウェアを推奨してしまうのを防いだ方法

たった1つの継承された設定ファイルが、主要なAI IDEすべてで何百万人もの開発者を危険にさらしていた

私たちは、最も人気のあるAI IDEが、実在しない拡張機能や、誰でも取得してマルウェアをアップロードできる未取得の名前空間を、公式に推奨していることを発見しました。そこで私たちは、攻撃者より先にそれらを取得しました。

Image

AI IDEゴールドラッシュには盲点がある

Cursor、Windsurf、Google Antigravity、Trae――これらは今、ソフトウェア開発で最も注目されているツールです。Cursorだけでも1日あたりのアクティブユーザーが100万人を超え、評価額は99億ドルに達しています。Windsurfはローンチから数か月で100万人のユーザーに到達しました。Google Antigravityはわずか数週間前に公開され、Windsurfのチームと技術を24億ドルで買収したことを背景にしています。

これらには共通点があります。いずれもVSCodeからフォークされているのです。

そして共通の問題もあります。Microsoftの拡張機能マーケットプレイスを利用できないことです。ライセンスにより、Microsoft以外の製品がそれにアクセスすることは明確に禁止されています。そのため、Eclipse Foundationが管理するオープンソースの代替であるOpenVSXを利用しています。

しかし、VSCodeをフォークした際に、Microsoftのマーケットプレイス上の拡張機能を指す「拡張機能の推奨リスト」も引き継いでしまいました。ところが、その拡張機能のすべてがOpenVSXに存在するわけではありません。

問題:存在しない拡張機能を推奨してしまう

これらのIDEには、ハードコードされた公式の能動的推奨が同梱されています。検索結果でも、あなたが求めた提案でもありません。IDEが積極的にユーザーへ「これをインストールすべきです」と伝えるのです。

推奨には2種類あります:

ファイルベースの推奨:azure-pipelines.yamlのようなファイルを開くと、Azure Pipelines拡張機能を推奨するトースト通知が表示されます。

Image

推奨設定内のazure-pipelines拡張機能

ソフトウェアベースの推奨:マシンにPostgreSQLがインストールされていますか? するとIDEは、あなたが検索したことがなくても、サイドバーでPostgreSQL拡張機能を自動的に推奨します。

Image

推奨設定内のvscode-postgresql

問題は、これらの推奨拡張機能がOpenVSX上に存在しなかったことです。名前空間は未取得でした。つまり、誰でも登録して好きなものをアップロードできたのです。

起こり得たこと

こう想像してください。攻撃者がOpenVSXでms-ossdata.vscode-postgresqlを登録し、悪意ある拡張機能をアップロードします。

するとPostgreSQLをインストールしているすべての開発者がCursor、Windsurf、またはAntigravityを開いたときに、「推奨:PostgreSQL拡張機能」と表示されます。IDEが推奨しているのだからと信頼し、インストールをクリックします。

拡張機能はシステムへのフルアクセスで動作します。SSHキー、AWS認証情報、ソースコード――すべてが流出します。フィッシングは不要。不審なダウンロードも不要。IDEを使ういつもの一日が、それだけで成立してしまいます。

Image

私たちのプレースホルダー版PostgreSQL拡張機能は、アイコンもなく、「これはVS Code拡張機能のプレースホルダーです」と明確に記載しているにもかかわらず、インストール数が500を超えています。IDEに言われたからという理由で、人々はそれでもインストールしてしまうのです。

私たちが行ったこと

私たちは脆弱な名前空間を自分たちで取得し、悪意ある行為者が先に入り込むのを防ぐためにプレースホルダー拡張機能をアップロードしました。

Image

Open VSX上の私たちのプレースホルダー拡張機能の1つ

確保した拡張機能:

  • ms-ossdata.vscode-postgresql:マシンにPostgreSQLがインストールされているときにトリガー
  • ms-azure-devops.azure-pipelines:azure-pipelines.yamlを開いたときにトリガー
  • msazurermtools.azurerm-vscode-tools:azuredeploy.jsonを開いたときにトリガー
  • usqlextpublisher.usql-vscode-ext:*.usqlファイルを開いたときにトリガー
  • cake-build.cake-vscode:build.cakeを開いたときにトリガー
  • pkosta2005.heroku-command:マシンにHeroku CLIがインストールされているときにトリガー

1,000人以上の開発者が私たちのプレースホルダー拡張機能をインストールしました。機能はなく、アイコンもなく、説明には明確にプレースホルダーであると書かれている拡張機能です。それでも、IDEが推奨したからという理由でインストールされました。ユーザーがこれらの推奨をどれほど信頼しているかが分かります。

Image

潜在的に悪意ある拡張機能を推奨するCursor

その後、(OpenVSXを運営する)Eclipse Foundationと協力し、これらIDEの設定で参照されている残りの名前空間と拡張機能がすべて安全であることを検証し、名前空間から非公式のコントリビューターを削除しました。 

開示

  • 2025年11月23日:Googleに報告
  • 2025年11月24日:Cursorに報告([email protected]
  • 2025年11月24日:Windsurfに報告([email protected]
  • 2025年11月25日:Googleが報告を「Won’t Fix (Infeasible)」としてクローズ
  • 2025年11月25日:攻撃ベクターを明確化:アカウント侵害は不要
  • 2025年11月25日:Googleが再び「Won’t Fix」としてクローズ
  • 2025年11月25日:再度明確化:攻撃者は自分のアカウントを使用し、全ユーザーが影響
  • 2025年11月26日:Googleが再オープンし、脆弱性を受理
  • 2025年11月26日:残りの名前空間を検証するためOpenVSXに連絡
  • 2025年12月26日:Googleが部分的修正をリリース(13拡張機能を削除)
  • 2025年12月26日:設定に残る脆弱な拡張機能を指摘
  • 2026年1月1日:Googleが修正済みとしてマーク
  • 本日:公開開示

Cursorは、脆弱性報告を5営業日以内に認知することを公に約束しています。しかし、彼らは一度も返信しませんでした。

Windsurfも返信しませんでした。

Image

潜在的に悪意ある拡張機能を推奨するGoogle Antigravity

OpenVSXを運営するEclipse Foundationとの協業は非常にやりやすいものでした。彼らは迅速に対応し、私たちが指摘した名前空間を検証し、レジストリ全体で追加のセキュリティ対策も先回りして実施しました。彼らとの協力により、返信のないベンダーを待つことなく、責任ある形で公開開示できます。

最後に

拡張機能マーケットプレイスは新たなソフトウェア・サプライチェーンであり、この調査はそれがいかに容易に悪用され得るかを示しています。

私たちは、まさにこの種の脅威――拡張機能マーケットプレイス防御の隙を突く攻撃者――を捉えるためにKoiを構築しました。IDEの推奨が侵害されている可能性があっても、私たちのリスクエンジンは、拡張機能がインストール中に実際に何をするか(ネットワークリクエスト、ファイルシステムへのアクセス、スクリプト実行、悪意を示す行動パターン)を監視し、コードがどのように入り込んだかに関係なく悪意を見抜きます。

Fortune 50の組織や世界最大級のテック企業の一部に信頼されているKoiは、環境に流入するサードパーティコードに対する可視性とガバナンスをセキュリティチームにもたらします。

デモを予約して、従来の防御をすり抜ける脅威を私たちのエージェント型AIリスクエンジンがどのように検知するかをご覧ください。

どうか安全に。

翻訳元: https://www.koi.ai/blog/how-we-prevented-cursor-windsurf-google-antigravity-from-recommending-malware

ソース: koi.ai