悪性拡張機能のVS Codeマーケットプレイスへの公開は容易、研究者が実証
Mazin Ahmed – December 6, 2025
悪意ある拡張機能を作成してVS Codeマーケットプレイスの審査プロセスを通過させ、開発者のマシンへバックドアを送り込むことは驚くほど容易であると、研究者Mazin Ahmed氏が報告。実際に悪性拡張機能を公開できたプロセスをブログ記事で明かし、サプライチェーンリスクについて注意喚起した。Ahmed氏によれば、VS CodeマーケットプレイスやOpenVSXマーケットプレイスを通じて完全に機能するバックドアを公開するのに、高度な技術は必要なかったという。
ベーシックなインフォスティーラーPoCがVS Codeマーケットプレイスの審査を通過
同氏の研究はまず、「Piithon-linter」と名付けられたPoC拡張機能を作成するところからスタート。この拡張機能はPythonのコードフォーマッターに偽装されているものの、インストールされると、VS Codeが起動される度に悪意あるコードを実行し、密かにシステムメタデータと環境変数をリモートのC2サーバーへ抽出する機能を持つ。VS Codeエディタは、エディタを起動したシェルセッションの環境変数をすべて引き継ぐため、感染したマシンの環境変数に「GITHUB_TOKEN」や「AWS_SECRET_KEY」のようなトークンやAPIキーがが含まれていれば、こうした秘密情報はC2サーバーへ抜き取られることになる。
Ahmed氏は安全上の理由から、拡張機能側で上記のようなシークレットの値を送信前に伏字化するルールを設定し、VSIXファイルとしてパッケージしてPiithon-linterをVS Codeマーケットプレイスへ提出。マイクロソフトのマーケットプレイスに関するドキュメントには、提出のあった拡張機能ごとに複数のウイルス対策エンジンを使ったマルウェアスキャンが実行されること、さらにサンドボックスVM内で拡張機能を実行する動的解析も行われることが記載されている。このため、Ahmed氏はPiithon-linterが審査プロセスで拒否されるだろうと予測していた。しかし、エンコードや難読化、またはその他の特別な仕掛けなどはなく、悪意あるコードが露骨に含まれていたにもかかわらず、マーケットプレイスは同拡張機能を受理したという。
OpenVSXでも公開成功
Piithon-linterは続いて、OpenVSXでも問題なく受理・公開され、Cursor AI、Windsurf、AWS Kiro をはじめとする多くのAI搭載IDEで公開検索が可能な状態となった。なお、OpenVSXには自動化されたセキュリティチェックが存在せず、悪意ある拡張機能を防ぐ方法として採用されているのはユーザーからの報告とコンプライアンス契約のみだという。
VS Codeマーケットプレイスはバックドアも受理
Ahmed氏は続いて、完全に機能するバックドアでも検出されないかを確かめるため、Piithon-linterをアップデート。EDRやアンチウイルスソフトの有無を確認し、検出された場合に実行を停止する機能を新たに追加したほか、マイクロソフトのサンドボックススキャンのバイパスも取り入れた。これは、「マイクロソフトはサンドボックスのスキャンを米国内で実行しているのではないか」という理論に基づき、ジオフェンシングのルールを設定。このルールにより、米国ベースのサンドボックスで実行された場合に悪意ある動作を停止させるというバイパス手法だった。
上記の回避手法に加え、Ahmed氏はアップデート版にポストエクスプロイト(侵害後)ツールキットのMerlinも追加。これにより、Windows、macOS、Linuxの各システムでリモートシェルアクセスを提供できる状態になっていた。
このアップデートバージョンの拡張機能は明らかに悪意あるパターンを含んでいたにもかかわらず、VS CodeマーケットプレイスとVirusTotalのどちらの検知も依然として回避したという。Ahmed氏はまた、VS Code自体が起動時にPiithon-linterを自動で起動するため、バックドアは永続性を保つ点にも言及。たとえユーザーがリブートを行っても、VS Codeを開くことで悪意ある拡張機能は再び起動することになる。同氏はさらに、VS Codeはデフォルトで拡張機能を自動アップデートする設定になっているとも述べ、これは、「攻撃者がいつでも新たな機能を追加したアップデートをプッシュできる」ことを意味していると指摘した。
Ahmed氏は今回の発見をマイクロソフト、OpenVSXの運営主体であるEclipse Foundation、そしてCursor AIに報告。マイクロソフトはこのリスクを「深刻度が低い(low severity)」と分類し、静的解析を回避することは可能であると述べ、したがって悪意ある拡張機能をインストールしないようにする責任はユーザー自身にあるとの見解を示したという。一方でCursor AI は発行者の検証機能やマルウェアスキャンを導入したものの、Ahmed氏の検証では悪意あるバージョンが依然として「安全」と判定されている。
現行のセキュリティコントロールの不十分さが浮き彫りに
Ahmed氏はこのように、開発者環境を侵害する性能を持つ悪性VS Code/OpenVSX拡張機能を公開することがショッキングなほど容易であることを実証。全体のプロセスを通じて、高度な回避戦術も難読化も必要なかったことから、同氏は「現行のセキュリティコントロールは、悪性拡張機能をキャッチするにはシンプルに不十分」であると指摘した。
近年開発者を狙ったサプライチェーン攻撃の脅威は増大しており、たった1人の開発者のIDEが侵害されるだけで、組織全体のインフラが影響を受ける可能性も考えられる。そんな中、今回のAhmed氏の研究結果は、拡張機能審査の厳格化、リアルタイムの挙動監視、またマーケットプレイス全体での協調した防御といった対策の必要性を浮き彫りにしている。













とは?.jpg)
