Koi Securityは1月6日(現地時間)、「How We Prevented Cursor, Windsurf & Google Antigravity from Recommending Malware」において、Visual Studio Codeから派生した統合開発環境(IDE: Integrated Development Environment)のCursor、Windsurf、Google Antigravity、Traeから脆弱性を発見したと報じた。

攻撃者は特定の条件を満たす拡張機能の名前空間を悪用することで、悪意のある拡張機能を「推奨機能」として配布可能とされる。

  • How We Prevented Cursor、Windsurf & Google Antigravity from Recommending Malware

    How We Prevented Cursor, Windsurf & Google Antigravity from Recommending Malware

悪意のある拡張機能を推奨させる仕組み

Visual Studio Code(以下、VSCode)はMicrosoftが開発した無償の統合開発環境だ。さまざまな拡張機能をサポートし、その一部を推奨機能として表示することができる(参考:「Visual Studio Code 拡張機能を使用する | Microsoft Learn」)。

一方でVSCodeから派生したCursorなどの統合開発環境は、ライセンスの制約によりMicrosoft公式の拡張機能マーケットプレイスを使用することができない。そこでEclipse Foundationが運営する代替マーケットプレイスの「Open VSX Registry(以下、OpenVSX)」を使用して拡張機能をサポートしている。

ここで問題になるのがVSCodeに搭載された拡張機能の推奨機能だ。Koi Securityによると、VSCodeは推奨する拡張機能の一覧をハードコードして出荷しており、派生製品においても同一の推奨表示を行うという。その結果、OpenVSXに存在しない拡張機能を推奨するという状況が発生する。

有名無実化した拡張機能を配布する

攻撃者は前述の問題を利用することで、「OpenVSXに存在しない推奨される拡張機能」をOpenVSXに登録することができる。ユーザーがこの推奨された悪意のある拡張機能をインストールすると、情報流出やマルウェア感染などの被害に遭う可能性がある。

  • 悪意のある拡張機能を使用した攻撃手順 - 引用:Koi Security

    悪意のある拡張機能を使用した攻撃手順 引用:Koi Security

対策

Koi Securityは被害の発生を防止する目的で、OpenVSXに一部拡張機能のプレースホルダー(中身のない拡張機能)を登録した。すでに1000人以上の開発者がこれらプレースホルダーをインストールしたことが明らかになっており、推奨する拡張機能を無条件で信頼するユーザーの多さを物語っている。

CursorおよびGoogle Antigravityは、本稿執筆時点までに対策を完了。WindsurfはKoi Securityの報告に応答しなかったとされる。OpenVSXを運営するEclipse Foundationも対応を進め、レジストリー全体で対策を強化したことが報告されている。