Microsoftは10月13日の月例セキュリティ更新で、Copilot関連のリモートコード実行の脆弱性を修正した。識別番号はCVE-2026-103572で、影響を受けるのはVisual Studio(2026や2022などの旧バージョンを含む)とSQL Server Management Studio(SSMS)。発見者はセキュリティ研究者のJohann Rehberger氏で、同日、自身のブログ「Embrace The Red」で技術的な詳細を公開した。
2つの製品は中核ライブラリMicrosoft.VisualStudio.Copilot.Core.dllを共用しており、脆弱性はここにある。そのため1か所の欠陥が両方の製品に及ぶ。
1つのピリオドで検査をすり抜ける仕組み
CopilotはIDE上でユーザーに代わってファイルを書き込めるが、.mcp.jsonやVisual Studioの設定ファイルといった構成ファイルは保護対象とされ、触れないことになっている。問題は検査の方法にある。検証ロジックが比較しているのは、生の文字列だった。
WindowsのWin32層には古くからの決まりがあり、ファイル名の末尾にあるピリオドは自動的に取り除かれる。Rehberger氏はMicrosoft自身のドキュメントを引用している。「File and Folder names that end with the ASCII Period (0x2E) character will also be saved without this character.」このため、検証時点ではsettings.json.とsettings.jsonは別の文字列となり、検査は通過する。ところが実際にディスクへ書き込む段階で末尾のドットが削られ、書き込まれるのは保護されたファイルそのものになる。
攻撃の流れはおおむね次のとおりだ。攻撃者はまず間接プロンプトインジェクションでCopilotに影響を与える。たとえばMCPサーバーが返すデータに指示を紛れ込ませる。Copilotがそれに従い、.mcp.jsonなどの構成ファイルに攻撃者の望む内容を書き込む。IDEがその構成を読み込む際に、悪意あるコマンドが起動される。Visual Studioでは、関連するツールのパス設定を書き換えることでもコマンド実行を誘発できる。
Rehberger氏は併せていくつかの問題も報告している。..\を使ったパストラバーサルで制限されたファイルを読み取れること、一部のファイルからインストール識別子が漏れること、そしてMAI-Code-1-Flashモデルは間接プロンプトインジェクションへの耐性が低めであることだ。同氏の分析によれば、Microsoftの修正はGetFullPathの呼び出しを1回加えるもので、まずパスを正規化して末尾のドットを除き..を展開してから、比較を行う。
同じ種類の穴、これで2度目
Rehberger氏が構成ファイルを突くのは初めてではない。2025年8月、同氏はVS Code上のGitHub Copilotにおけるリモートコード実行の脆弱性(CVE-2025-53773)を公表している。プロンプトインジェクションでCopilotにワークスペースのsettings.jsonを書き換えさせ、確認なしでツールを自動実行する設定を有効にすると、その後はそのままコマンドを実行できた。このときもMicrosoftの月例パッチで修正されている。
2件を並べると、手口は一貫している。エージェントにはファイルの書き込みが許され、構成ファイルがエージェントとIDEにできることを決めており、エージェントに構成を書かせることさえできれば、権限はエージェント自身の手で拡大される。2025年の教訓は構成ファイルに保護リストを設けることだったが、今回突破されたのはまさにその層である。Rehberger氏は記事で次のように総括している。
"Security controls around agents must hold even when the agent itself is compromised or misaligned."
エージェントに対するセキュリティ制御は、エージェント自身が侵害された場合や挙動がずれた場合でも成立しなければならない。
利用者がすべきこと
時系列では、Rehberger氏が8月4日に報告を提出し、8月4日から7日にかけてVisual Studioへの影響と悪用の詳細を追記、8月30日にフォローアップした。Microsoftは9月16日に確認し、10月11日に報奨金が0ドルであることを伝え、10月13日に修正をリリースした。Microsoftが報奨金を支払わなかった理由は、公開資料には説明がない。
Visual StudioやSSMSを使うチームにとって、対処は1つしかない。今月のパッチをできるだけ早く適用することだ。CopilotをサードパーティのMCPサーバーに接続している環境はリスクが高い。プロンプトインジェクションの入り口がまさにそうした外部データだからである。
参考資料:Embrace The Redの技術ブログ、CocoLoop、Microsoftセキュリティ更新プログラムガイド。CVE番号、CVSSスコア、開示の時系列は、研究者のブログとMicrosoftの公式情報に基づく。