VS CodeのGitHub.devにワンクリックで認証トークンを窃取する脆弱性、プライベートリポジトリが危険に
**Microsoft Visual Studio Code (VS Code)** の **GitHub.dev** 環境に、深刻な脆弱性が発見されました。このワンクリックで実行可能なエクスプロイトにより、攻撃者は **GitHub** のOAuthトークンを窃取し、ユーザーのプライベートリポジトリへの読み書きアクセス権を得ることが可能になります。この脆弱性は、悪意のある拡張機能とメッセージングメカニズムを悪用してセキュリティチェックを回避します。
サイバーセキュリティ研究者らが、**Microsoft Visual Studio Code (VS Code)** と **GitHub.dev**(Webベースのコードエディタ)の組み合わせに影響を与える重大な脆弱性を発見しました。このエクスプロイトにより、ワンクリック攻撃が可能となり、ユーザーの **GitHub** トークンが侵害され、リポジトリへの不正アクセスを許す可能性があります。
セキュリティ研究者の **Ammar Askar** 氏は、詳細なブログ投稿で「リンクをクリックするだけで、攻撃者はリポジトリ(プライベートなものを含む)を読み書きできるGitHubトークンを窃取することが可能です」と警告しています。

### GitHub.devとトークンフローの理解
**GitHub.dev** は、Webブラウザのサンドボックス内で動作する[軽量なWebベースのソースコードエディタ](https://docs.github.com/en/codespaces/the-githubdev-web-based-editor)であり、プルリクエストの送信やコミットなどの操作を容易にします。この機能は、**github.com** が **GitHub.dev** に **OAuth** トークンを安全にPOSTし、ユーザーに代わって **GitHub** とやり取りする権限を付与することに依存しています。
重要なのは、この **OAuth** トークンは特定のレポジトリにスコープされていないことです。代わりに、ユーザーがアクセスできるすべてのレポジトリへの完全なアクセス権を付与するため、侵害された場合の影響は非常に大きくなります。
### エクスプロイトの仕組み
この脆弱性により、攻撃者はこれらの機密性の高い **GitHub OAuth** トークンを傍受する悪意のある **VS Code** 拡張機能をインストールできます。エクスプロイトの核心は、メインの **VS Code** ウィンドウと、MarkdownプレビューやJupyterノートブックなどのコンテンツのレンダリングに使用される[Webview](https://code.visualstudio.com/api/extension-guides/webview)間の[メッセージングメカニズム](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)を悪用することにあります。

具体的には、このエクスプロイトは信頼されていないWebview内で悪意のあるJavaScriptを実行します。このスクリプトは、メインエディタウィンドウでキー入力(**Ctrl+Shift+P**)をシミュレートし、**Command Palette** を開きます。その後、プログラムで攻撃者が制御する拡張機能をインストールします。この悪意のある拡張機能は、 subsequently **GitHub.dev** に渡された **GitHub OAuth** トークンを抽出し、**GitHub API** にクエリを実行して、被害者がアクセスできるすべてのプライベートリポジトリを列挙します。
### トラストチェックの回避
この攻撃はさらに、[ローカルワークスペース拡張機能](https://code.visualstudio.com/updates/v1_89#_local-workspace-extensions)として知られる **VS Code** の機能も悪用します。この機能により、拡張機能をワークスペース内の `.vscode/extensions` フォルダーに配置することで直接インストールでき、標準の[信頼ダイアログプロンプト](https://code.visualstudio.com/docs/configure/extensions/extension-runtime-security#_extension-publisher-trust)を効果的に回避できます。
Askar氏は、「これはほんの小さな障害ですが、拡張機能がパッケージの一部としてできることの1つは、VS Codeに追加のキーバインディングを提供することです。キーバインディングを確実にトリガーできるため、信頼された発行元のチェックをスキップしながら、任意のVS Codeコマンドのキーバインドを追加するだけで済みます」と説明しています。
### 公開とMicrosoftの対応
**GitHub** は、2026年6月2日にこの脆弱性について[通知](https://github.com/microsoft/vscode/issues/319593)を受けました。しかし、問題の詳細はその後すぐに公開されました。これは、**Askar** 氏が **Microsoft** の過去の[対応](https://blog.ammaraskar.com/vscode-rce/)(同様の[VS Code関連のバグ](https://starlabs.sg/blog/2025/05-breaking-out-of-restricted-mode-xss-to-rce-in-visual-studio-code/))に起因すると述べています。
当初、**Microsoft** は脆弱性を認め、修正に取り組んでいることを確認しました。**Microsoft** のパートナーソフトウェアエンジニアリングマネージャーである **Alexandru Dima** 氏は、「この問題は **VS Code Desktop** には影響しません」と明言しました。
### 更新:脆弱性は緩和されました
公開後、**Microsoft** は脆弱性が対処されたことを確認しました。「この問題は当社のサービスで緩和されており、顧客による対応は不要です」と **Microsoft** の広報担当者は述べ、**GitHub.dev** のユーザーは現在保護されていることを示唆しています。Ghost Protocol は、修正に関するさらなる詳細と関連するセキュリティアドバイザリを引き続き監視します。