GitHubのアクセストークンが「ワンクリック」で盗まれる脆弱性が報告:ブラウザ開発環境が狙われる
GitHubのブラウザ版開発環境「github.dev」において、細工されたリンクを単にクリックするだけで、ユーザーのGitHub認証トークンが盗まれる可能性のある重大な脆弱性が報告されました。この脆弱性は、VS CodeのWebviewという表示領域の仕組みに起因しています。Webviewは、MarkdownプレビューやJupyter Notebookの表示など、HTMLやJavaScriptを含むコンテンツをエディター内に表示するために使用されますが、本来、スクリプトが本体の設定やファイル操作にアクセスできないよう隔離されています。しかし、今回のバグでは、Webview内のスクリプトが「ユーザーが実際に押したキー」ではなく「プログラムが作り出したキー操作」を、危険な形でVS Code本体へ中継できてしまうという問題がありました。
セキュリティ研究者のアマル・アスカール氏による実証では、攻撃者が用意したgithub.devへのリンク(Jupyter Notebookを含むリポジトリ)をユーザーにクリックさせるだけで攻撃が開始されます。このプロセスでは、Notebook内の表示処理を通じてJavaScriptが動作し、VS Codeのショートカット操作を偽装します。さらに、VS Codeの「推奨拡張機能」を受け入れる仕組みや、ワークスペース内の拡張機能のインストール機能が組み合わされることで、攻撃者が用意した悪意の拡張機能の実行に至ります。この拡張機能が動作すると、github.dev内で使用されているGitHub APIトークンを取得し、GitHub APIへ問い合わせることで、ユーザーがアクセス可能な非公開リポジトリの一覧を攻撃者のサーバーへ送信することが可能となります。アスカール氏の実証では、盗み出したトークンと非公開リポジトリの情報が情報ボックスに表示される形で実害が示されました。
この脆弱性は、デスクトップ版VS Codeにも同様の問題が存在するものの、github.devの場合、リンククリックのみで攻撃の入口が確立できるため、攻撃の難易度が格段に低い点が深刻です。これを受け、Microsoftは迅速に対応し、2026年6月3日にはブラウザでのNotebook開時に信頼確認を追加し、拡張機能インストールコマンドの呼び出し元情報制限を導入しました。さらに、2026年6月4日には、Webviewから送られるキー操作やクリック操作について、スクリプトが作り出した信頼できないイベントを一部の場面で本体側へ転送しない修正を適用し、対策を講じています。
背景
GitHubのブラウザ開発環境「github.dev」は、ユーザーがローカル環境を構築せずにブラウザ上でリポジトリの編集やコミットを行える便利なツールです。しかし、この利便性の裏側で、Webviewという表示領域の仕組みが、悪意のあるスクリプトによる情報漏洩の経路となってしまう脆弱性が発見されました。これは、ブラウザベースの開発環境におけるセキュリティの課題を浮き彫りにしています。
重要用語解説
- Webview: VS Codeなどのエディタ内で、MarkdownプレビューやNotebook表示など、HTML/JavaScriptを含むコンテンツを表示するための隔離された領域(iframeのようなもの)のこと。セキュリティ上の分離が目的です。
- アクセストークン: GitHubなどのオンラインサービスに、ユーザーを介さずにプログラムや外部ツールがアクセスするための認証情報。パスワードに代わる重要な秘密鍵です。
- OAuthトークン: ユーザーの権限を一時的に外部サービスに付与するための認証メカニズム。本件では、github.comからgithub.devへ渡されるトークンが狙われました。
今後の影響
本件は、ブラウザベースの開発環境のセキュリティ設計における重要な教訓を提供しました。今後、Webviewや類似のサンドボックス技術を利用するサービスでは、キーボード操作やイベントの発生源(ユーザー操作かスクリプト操作か)に対する信頼性の検証が必須となります。ユーザーは、不審なリンクのクリックや、推奨拡張機能の安易な承認に細心の注意を払う必要があります。