エディターの拡張機能を選ぶとき、掲載ページを開いてインストール数を眺める人は、まだどれだけいるでしょうか。この1週間で公表された3件の調査は、その判断がすでにエージェントや設定ファイルへ移っていることを、別々の角度から示しています。確認の関門は、危険な処理が起きる地点からずれていました。
2026年8月4日、Manifold SecurityはOpen VSXの偽装拡張機能77件を公表した。実在するVS Code Marketplace拡張の名前と名前空間を複製したもので、19件はGitリモートの組織名やCIの識別子を送信していた。8月3日までに削除された。8月6日、Yeeth Securityは拡張機能「Solidity Pro」を報告した。
初期のv1.0.0からv2.4.xは12〜72時間の遅延を挟むドロッパー、v3.1.x以降はTelegram経由の窃取型に分類されている。8月10日、Manifold SecurityはCursor CLIのworktree機能が、Workspace Trustの確認前にコマンドを実行していたと公表した。7月23日のビルドで修正された。
【編集部解説】
この1週間に、開発者の手元へコードが届く経路について、3つの調査が別々に公表されました。8月4日にManifold Security、8月6日にYeeth Security、8月10日にふたたびManifold Security。扱う対象は拡張機能の「名前」、拡張機能の「バージョン」、エディターの「信頼境界」と、それぞれ異なります。
並べて読むと、ひとつの共通点が浮かびます。確認のために置かれた関門と、危険な処理が実際に起きる地点とが、ずれているという点です。偽装拡張では名前を解決する工程そのものが自動化され、Solidity Proの初期版ではインストールから12〜72時間の遅延が短時間の検査をすり抜け、Cursor CLIの旧ビルドでは信頼確認より先にセットアップコマンドが動きました。ずれ方は3件とも異なりますが、関門が実効を持たなかったという結果は同じです。
開示が、そのまま隠れ蓑になっていた
Manifold Securityが報告した77件は、実在するVS Code Marketplace拡張の名前・名前空間・説明を複製し、Open VSXへバージョン0.0.1で再公開したものでした。同梱ファイルは通信用のコードに差し替えられ、掲載ページが宣伝している機能は実装されていません。
この事案が示唆的なのは、収集の内容よりも、それがどれだけ丁寧に開示されていたかにあります。掲載ページには「Telemetry」という節があり、送信する項目のほとんどが正確に列挙されていました。ソースコードは読まない、認証情報もトークンもSSH鍵もブラウザのデータも取得しない、端末には何も書き込まない。アックス・シャルマ(Ax Sharma)氏とコディ・ナッシュ(Cody Nash)氏がコードと突き合わせた結果、これらはいずれも事実でした。
食い違っていたのは1点です。CI(継続的インテグレーション)について「マーカーの名前だけを送り、値は送らない」と書かれていましたが、コードは値も送っていました。ビルドランナー上では、それは私有リポジトリのパスそのものを指します。送信物のなかで最も機微な項目が、開示で「送らない」とされていた項目でした。
両氏は攻撃者の意図を推測していません。ただ、同意という一点だけは動かせないと書いています。同意の根拠になっているのは、そのパッケージではない別のツールの名前を掲げた掲載ページであり、身元のないアカウントから公開されたものでした。インストールした人が、勤務先の私有リポジトリや同僚やCIに代わって同意できたはずもありません。
名前を解決しているのは、もう人間ではない
Open VSXとVS Code Marketplaceは、名前空間の所有ルールも検証の作法も別々です。片方で明確に所有されている名前が、もう片方では空いたままになっていることがある。名前だけで解決したパッケージは、自分がどちらを掴んだのか区別できません。
以前なら、この隙間はさほど問題になりませんでした。人間が掲載ページを開き、インストール数を眺め、なんとなく判断していたからです。その判断は、いま急速にソフトウェアへ移っています。エージェントに「Ruby環境を整えて」と頼めば、もっともらしい拡張機能名を解決してインストールします。devcontainerの設定はコンテナを組むたびに、プロビジョニングスクリプトはイメージを焼くたびに同じことをします。いずれも、インストール数もパブリッシャーの認証バッジもリポジトリの来歴も見ていません。
これは2025年に研究者のマイケル・ボカネグラ(Michael Bocanegra)氏が「extension confusion」と名づけた構図で、依存関係混同と同じ系譜にあります。人が読み違えるのではなく、解決する主体が人ではなくなったために起きる、という点が違います。
時間をずらすという手口
Yeeth Securityが8月6日に公表した「Solidity Pro」は、別の角度から同じ問題に触れています。
この拡張機能は姿を変え続けました。Yeethの詳細な世代表では、初期のv1.0.0からv2.4.xがCloudflare Workersから暗号化されたPythonを取得して実行するドロッパー、v3.0.0からv3.0.2が移行期、v3.1.xからv3.2.xとweb3devtoolsxの3.4.0が、ブラウザのプロファイル、暗号資産ウォレット、GitHubやGitLabのトークン、AWSキー、SSH秘密鍵などをTelegram経由で送り出す窃取型です。なお原典の要約部分だけは「v3.0.0以降」で窃取型に移ったと記しており、原典のなかでも境界の書き方が揺れています。
そしてweb3devtoolsxの1.0.0と4.0.0には、同じ表示名を掲げながら悪性コードを含まない「おとり」が置かれていました。評判を積むためか、削除されたあとにどれだけ早く再承認されるかを測るためか。同じファミリーでもhelper-beepsの1.0.0は悪性のドロッパーで、発行者ごとに中身が違います。
初期版の起動には12〜72時間のランダムな遅延が挟まります。CIやGITHUB_ACTIONSといった環境変数を確認して、そこでは動きません。悪意ある処理が走るころには、利用者はすでにその拡張機能を「役に立つもの」として受け入れており、数分だけ観測する自動スキャンは通り過ぎたあとというわけです。
Yeeth Securityが挙げている提言のうち、ひとつは運用の前提を書き換えるものです。ダウンロード数を信頼の指標にしてはならない、と。水増しは実際に文書化されており、この事案でも観測されています。
なお、この系統はWhiteCobraと呼ばれる集団の手口と重なりますが、Yeeth Security自身が「観測したサンプルは、公開されている実行計画に列挙された拡張機能とバイト単位で同一ではない」「WhiteCobraとして扱うにはTTPの重複以上のものが必要だ」と留保しています。ここでは同じ運用手順を共有する系統、と捉えておくのが正確です。
確認より先に走ったコマンド
3件目は、レジストリではなくエディターの側の話です。
Cursor CLIには、エージェントを隔離したGitワークツリーで動かす機能があります。作業ツリーにエージェントを放つのは怖い、という感覚に応えるための仕組みです。新しいワークツリーにはビルド成果物がないため、作成時にセットアップ段階が既定で走ります。
フランシスコ・ロサレス(Francisco Rosales)氏が見つけたのは、この段階がリポジトリ内の設定ファイルを読み、そこに書かれたシェルコマンドを解釈も照合もせずに実行していた、という点でした。しかも、「このワークスペースを信頼しますか」という確認が画面に出る前にです。ファイルは通常のクローンで届くので、経路に不審な点はありません。
Cursorは報告から3日で修正ビルドを出しました。現在は確認が先に出て、信頼するまでセットアップは走りません。Manifold Security自身がその日のうちに両ビルドを再検証し、修正が有効であることを確かめています。批判の記事でありながら、相手の対応が効いていることを自ら実証して記録に残している。この作法は評価されてよいと考えます。
一方で、残っている部分もあります。このセットアップ段階はサンドボックスを無効化する設定に固定されており、利用者が明示的にサンドボックスを有効化しても適用されません。その設定値にinsecure_noneという名前を付けているのはCursor自身です。
Manifoldは、クローンしたリポジトリ内の.cursor/配下のファイルが実行に到達する問題について、Cursorが過去に2件のアドバイザリを公開してきたことを挙げています。ひとつは今回と近い構図の.cursor/mcp.jsonの件、もうひとつは.cursor/cli.jsonの扱いに関する件で、機構まで同じではありません。同社は、影響を受けるバージョンの利用者に更新の必要性が届く経路としてアドバイザリを重く見ていますが、今回はそれが公開されませんでした。
月間6億回の供給路を、非営利が支えている
ここまでの3件は、いずれも同じ場所につながっています。
Open VSXは、Eclipse Foundationが運営するベンダー中立の拡張機能レジストリです。2026年6月時点で月間6億回を超える拡張機能のダウンロードを配信しており、同月にはバージョン1.0.0に到達し、Eclipse Foundationの開発プロセス上も成熟フェーズへ移行しました。3月には月間3億回超と公表されていたので、4か月足らずで公表値が塗り替わったことになります。いずれも下限として示された数字です。
Eclipse Foundationが名前を挙げているのは、Kiro(Amazon)、Antigravity(Google)、Cursor、IBMのBob、VSCodium、Devin Desktop(旧Windsurf)、Ona(旧Gitpod)など。VS Codeのフォークやクラウド開発環境が、そろって同じ供給路に依存する構図です。MicrosoftのMarketplaceは、ライセンス上、同社の製品以外から使えません。Open VSXはもともとその制約に応えるために生まれた仕組みで、AIを前提とした開発環境が次々に登場したことで、行き先がここへ収れんしました。
Eclipse Foundationは走り続けています。2025年10月にトークンの有効期間短縮と公開時スキャンを表明し、2026年2月には公開前スキャンの義務化を発表、3月には名前空間のなりすましと表示名の偽装を検出する枠組みを追加しました。4月には研究者の貢献を公に記録する表彰プログラムを開始し、同月にはAWS、Google、Cursorを初期顧客とする有償の運用サービスを立ち上げています。非営利が支えるインフラを、使う側が費用で支える形へ移そうとしています。
その表彰プログラムの名簿には、今回のSolidity Proを報告したYeeth Securityが2026年5月4日付で掲載されています。並んでいるのはYeeth Securityだけではありません。Socket、Wiz、Nextron Systems、Fenko Security、SECUINFRA、Pluto Securityなど、複数の企業と研究者が記録されています。少なくとも、責任ある開示を受けた研究者を記録し表彰する制度が実際に運用されていることは、この名簿から確認できます。
追いついていない部分がないわけではありません。2月には、公開前スキャンが負荷で失敗したときに「スキャンすべきものがなかった」と同じ扱いで通してしまう実装上の不具合が、Koi Securityから報告されました。
ただ、この一件で記録に残ったのは不具合そのものより、そのあとの速度です。報告は2月8日の日曜日、修正は2月11日。3日でした。報告したKoi Security自身が、迅速で職業的な対応であり、脆弱性開示はこうあってほしいという形だった、とレポートに書き添えています。防御を後付けで積み上げている最中の組織に、こうした穴は生まれます。問われるのは、生まれたあとに何日で塞がるかのほうでしょう。
Eclipse Foundationのミカエル・バルベロ(Mikaël Barbero)氏は、サプライチェーンのセキュリティは共有責任だと書いています。トークンを丁寧に扱う発行者から、検知と対応を高めるレジストリの運営者まで、という意味です。
日本の読者にとって
CursorやDevin Desktop、Antigravityを業務で使っているなら、その拡張機能はOpen VSX経由です。3件はいずれも遠い話ではありません。
そして今回、3社の調査が共通して示している確認方法は、驚くほど地味です。設定ファイルが何を要求しているかではなく、実際に何が入っているかを見る。開発者の端末とCIイメージの両方で、設定ファイルに並んだIDと、現実にインストールされているものを突き合わせる。レジストリからの削除は、すでに配られたものを回収しません。イメージや設定に固定された名前はそのまま残り、エディターを起動するたびに動きます。
拡張機能はいつのまにか、依存関係になりました。npmのパッケージを棚卸しする感覚を、エディターの中にも持ち込む時期に来ています。
判断の主体が変わったなら、見る場所も変わる
3件を通して見えてくるのは、防御の焦点が移りつつあるという事実です。
シグネチャによる検知は、今回の77件には効きません。危険なAPIの呼び出しも、難読化も、ディスクへの書き込みもなく、静的な指標はすべて「問題なし」を指します。掲載ページの文章も同じことを主張します。
見分けられるのは挙動のほうです。ファイル先頭にコメントを入れるだけの拡張機能が、gitの設定を読み、CIの環境変数を数え上げ、11日前に登録されたばかりのドメインへ接続を開く理由はありません。マニフェストが何を許されていると言っているかではなく、動いている最中に何をしているか。関門の位置が実際の処理からずれているのなら、観測の位置をそこへ寄せるほかありません。
3社の調査は、いずれも無償で公開されました。IoC(侵害の指標)も検出のための指標も添えられています。この1週間に起きたのは、3件の攻撃が見つかったという出来事であると同時に、それを見つけて公開する仕組みが機能していたという出来事でもありました。
【関連記事】
Cursor 2.5未満で任意コード実行の脆弱性、何気ないGit操作が侵入口に
同じくリポジトリの内容を起点にCursorでコードが走る事案。今回はCVEが採番されていない点が異なる。
JetBrainsで15個の悪性プラグインがAPIキーを窃取、合計約7万ダウンロード
エディターの拡張機能を入口とする攻撃を扱った記事。マーケットプレイスの違いを超えた共通点が見える。
GitHub内部リポジトリ約3,800件が流出 — 悪意あるVS Code拡張機能から始まった侵害
汚染された拡張機能1つが大規模な侵害の起点になった事例。拡張機能を依存関係として見る視点と接続する。
【編集部後記】
77件のうち偵察型の19件には、送信項目がもうひとつありました。開いているワークスペースの設定ファイルが、その拡張機能自身のIDを指しているかどうか。真偽ひとつのフラグです。
これは、人が選んでインストールしたのか、リポジトリの設定に引きずられて入ったのかを見分ける値です。攻撃側が知りたかったのが「誰の端末か」ではなく「どうやって自分は呼ばれたのか」だとしたら、次に見られるのは端末ではなく、その設定ファイルのほうかもしれません。
【用語解説】
Devin Desktop(旧Windsurf)
Cognitionが提供するAI搭載IDE。2026年6月2日にWindsurfからDevin Desktopへ名称が移行した。既存の環境は設定や拡張機能を引き継いだまま更新される。なおJetBrains向けの「Windsurf for JetBrains」など、Windsurfの名称が残る製品もある。過去の資料や発表では「Windsurf」の名称が使われているため、本記事では時点に応じて両名称を併記する。
名前空間(ネームスペース)
拡張機能の発行者を識別する単位。Open VSXとVS Code Marketplaceは名前空間の所有ルールが別々で、片方で所有されている名前がもう片方では空いていることがある。
Telemetry(テレメトリ)
本来は製品改善のために集める利用統計を指す語。今回の77件は、機能を持たないパッケージが外部へ通信する理由づけとして、この語を掲載ページに掲げていた。
extension confusion(拡張機能混同)
2025年にマイケル・ボカネグラ氏が提唱した用語。複数のレジストリで名前空間の所有ルールが異なるため、名前だけで解決したパッケージがどちらの由来か判別できない状態を指す。
依存関係混同(dependency confusion)
パッケージの解決が公開リポジトリを社内リポジトリより優先してしまい、意図しないパッケージが取得される問題。extension confusionはこの系譜にある。
CI(継続的インテグレーション)
コードの変更ごとにビルドとテストを自動実行する仕組み。実行環境には、リポジトリ名やプロジェクト経路が環境変数として置かれている。
devcontainer
開発環境をコンテナとして定義する仕組み。設定ファイルに拡張機能のIDを列挙しておくと、コンテナを組むたびに自動でインストールされる。
ドロッパー
それ自体は目立った動きをせず、外部から本体の不正プログラムを取得して実行させる役割の部品。
窃取型(インフォスティーラー)
認証情報、暗号資産ウォレット、鍵ファイルなどを収集して外部へ送出する種類の不正プログラム。
Gitワークツリー
ひとつのリポジトリから複数の作業ディレクトリを切り出すGitの機能。ブランチごとに別フォルダで並行作業できる。
Workspace Trust(ワークスペーストラスト)
そのフォルダの内容を信頼するかを利用者に確認し、信頼するまで危険な処理を止める仕組み。VS Code系のエディターが備える。
サンドボックス
プログラムの動作範囲を制限する隔離環境。Cursorの設定では書き込み可・読み取りのみ・無効の3種類が選べ、無効を指す値の名称が insecure_none である。
セキュリティアドバイザリ
脆弱性の内容と影響範囲、対処方法を公表する文書。すでに古い版を使っている利用者へ更新の必要性を伝える主要な経路となる。
IoC(侵害の指標)
Indicators of Compromiseの略。通信先のドメインやファイルのハッシュ値など、侵害の痕跡を機械的に照合するための情報。
TTP
Tactics, Techniques and Proceduresの略。攻撃者の戦術・技術・手順。重なりがあっても、それだけで同一の攻撃者と断定はできない。
WhiteCobra
2025年9月以降に観測されている、開発者向け拡張機能を悪用する一連の活動の呼称。今回のSolidity Proは手口が重なるものの、同一と断定できる材料は公表されていない。
【参考リンク】
77 “evil twin” Open VSX extensions(外部)
Manifold Securityが8月4日に公表。77件の内訳と、掲載ページの記述がコードと食い違っていた1点、全件のIOCを掲載する。
Solidity Pro’s WhiteCobra Chassis(外部)
Yeeth Securityが8月6日に公表。20を超える版を世代別の表に整理し、無害なおとり版の存在まで追跡している。
Cursor CLI Ran Untrusted Repository Code With the Sandbox Switched Off(外部)
Manifold Securityが8月10日に公表。報告から修正、クローズまでの9日間を、日付とビルド識別子つきで記録する。
Open VSX Registry(外部)
VS Code拡張APIに対応したツール向けの、ベンダー中立な拡張機能レジストリ。Eclipse Foundationが運営する。
Eclipse Open VSX graduates to mature phase(外部)
月間6億回超の配信と成熟フェーズへの移行を伝えるEclipse Foundation公式ブログ。2026年6月29日付。
Open VSX Registry surpasses 300 million monthly downloads(外部)
2026年3月3日の公式発表。Open VSXを利用しているプラットフォームの名称と、公開前検証の枠組みについて記載している。
Open VSX Security Hall of Fame(外部)
責任ある開示に貢献した研究者と企業を記録する、Open VSX公式の名簿である。掲載された日付と組織名が一覧で確認できる。
Open Sesame: How a Fail-Open Bug in Open VSX’s New Scanner Let Malware Walk Right In(外部)
Koi Securityが公開前スキャンの不具合を報告したレポート。開示から修正までの3日間を、日付を添えて時系列で記録する。
Cursor Docs — Worktrees(外部)
worktree機能とセットアップ設定に関するCursor公式ドキュメント。セットアップを飛ばす指定についても記載されている。
Devin Desktop(外部)
CognitionのAI搭載IDEの公式ページ。Windsurfから名称が移行した経緯についても、公式に説明されている。
【参考記事】
Open VSX Removes 77 Malicious Evil Twin Extensions Exfiltrating Developer Data(外部)
77件の内訳と、うち19件が収集していた項目を具体的に整理した報道である。本記事では主として数値の確認のために用いている。
77 Open VSX extensions found harvesting developer info(外部)
取得されなかったデータの範囲と、Manifoldが攻撃の意図を推測していない点まで踏まえたうえで丁寧に伝えている報道である。
Cursor Security Bug Allowed Repositories to Execute Commands Pre Trust(外部)
報告からクローズまでの経緯に加えて、Cursor側が示した2つの理由と、Manifold側の反論を整理して伝えた報道である。
Solidity Pro VS Code Extensions Steal Crypto Wallets, API Keys, and Credentials(外部)
Yeeth Securityの報告について、窃取対象となった認証情報や暗号資産ウォレットの種類を軸にまとめた報道である。
Eclipse Foundation reports Open VSX hits 300 million monthly downloads(外部)
規模の数値に加えて、AWSとCursorによる資金面での支援の内実まで踏み込んで報じている。2026年3月12日の記事。


















