
VSCodeというエディタがあります。
VSCode(正式名称:Visual Studio Code)は、Microsoft社が開発した完全無料の高機能コードエディタです。
軽量かつ高速でありながら、プログラミングを快適にする多彩な機能を備えており、世界中のエンジニアやクリエイターに最も利用されている標準的な開発ツールです。
このVSCodeで、重大度の高い脆弱性が確認されました。
概要と影響は次の通りです。
- 脆弱性の概要
ブラウザ版およびデスクトップ版のVS Codeにおいて、リンクを1回クリックするだけでGitHubのOAuthトークンが盗まれる危険性があります。 - 影響範囲
盗まれたトークンは特定の制限(スコープ)が設定されていないため、攻撃者は被害者がアクセス権を持つすべてのプライベートリポジトリを含む、全リポジトリの読み書きが可能になります。
脆弱性の仕組みをみてみましょう。
- Webviewの仕様
VS CodeはMarkdownプレビューやJupyterノートブックなどのレンダリングに隔離された <iframe>(Webview)を使用しています。 - キー入力の転送
Webview内でもショートカットキー(例: コマンドパレットの起動)を機能させるため、VS CodeはWebview内のキー入力を親ウィンドウへ転送(バブルアップ)する仕組みを実装していました。 - 攻撃の手法
攻撃者はノートブック内の悪意あるJavaScriptからユーザの「キー打鍵イベント(Ctrl+Shift+Aなど)」を偽装し、VS Codeの通知を勝手に承諾させます。
これにより、信頼済みパブリッシャーの検証をバイパスして、トークンを窃取する不正な拡張機能を強制的にインストールさせます。
このVS Codeの脆弱性は、リンクの1クリックでGitHub OAuthトークンが窃取され、全プライベートリポジトリへのアクセス権が奪われる危険なものでした。
対策としてマイクロソフトはWeb版へノートブック確認ダイアログを追加し、特定のコマンドによる検証バイパスを制限する応急処置を適用しました。
また、過去に github.dev(ブラウザ版VS Code)を利用したことがある場合、ブラウザのCookieやローカルストレージなどのサイトデータを完全に削除することが推奨されています。
1-Click GitHub Token Stealing via a VSCode Bug
https://blog.ammaraskar.com/github-token-stealing/
| この記事をシェア |
|---|