Исследователь безопасности Аммар Аскар (Ammar Askar) опубликовал детали атаки на браузерную среду GitHub.dev, позволяющей похитить OAuth-токен GitHub с правами чтения и записи во все доступные пользователю репозитории, включая приватные. Для эксплуатации достаточно одного клика по вредоносной ссылке. Microsoft подтвердила уязвимость и заявила о работе над исправлением, уточнив, что десктопная версия VS Code не затронута. CVE-идентификатор и оценка CVSS на момент публикации не присвоены, однако существует публичный PoC-эксплойт.
Механизм атаки
GitHub.dev — это облегчённый веб-редактор кода на базе VS Code, работающий в песочнице браузера. Он позволяет отправлять pull-запросы и делать коммиты напрямую из браузера. Для авторизации GitHub.com передаёт OAuth-токен на GitHub.dev через POST-запрос. По данным исследователя, этот токен не ограничен конкретным репозиторием и предоставляет доступ ко всем репозиториям, доступным пользователю.
Цепочка эксплуатации включает несколько этапов:
- Выполнение JavaScript в webview — атакующий использует механизм передачи сообщений между основным окном VS Code и webview-компонентами (используются для рендеринга Markdown-превью и редактирования Jupyter-ноутбуков). Вредоносный JavaScript выполняется внутри недоверенного webview.
- Симуляция нажатий клавиш — скрипт имитирует события keydown в основном окне редактора, вызывая комбинацию Ctrl+Shift+P для открытия палитры команд.
- Установка вредоносного расширения — через палитру команд устанавливается контролируемое атакующим расширение, которое перехватывает OAuth-токен, переданный на GitHub.dev.
- Эксфильтрация данных — расширение использует GitHub API для перечисления всех приватных репозиториев, к которым имеет доступ жертва.
Обход проверки доверия к издателю
Ключевой элемент атаки — использование функции локальных расширений рабочего пространства (local workspace extensions). Если расширение размещено в папке .vscode/extensions внутри рабочего пространства, оно устанавливается без дополнительного диалога подтверждения доверия к издателю. Кроме того, расширения могут через package.json регистрировать собственные привязки клавиш, что позволяет атакующему программно вызывать произвольные команды VS Code, включая установку расширений с обходом проверки доверия.
Оценка воздействия
Уязвимость представляет серьёзную угрозу для разработчиков, активно использующих GitHub.dev для работы с репозиториями. Основные риски:
- Компрометация исходного кода — похищенный токен, по данным исследователя, даёт права на чтение и запись во все доступные репозитории, что открывает возможность для внедрения вредоносного кода в цепочку поставок.
- Доступ к приватным репозиториям — атакующий получает возможность перечислить и прочитать содержимое закрытых репозиториев, потенциально содержащих конфиденциальную информацию, ключи API и секреты инфраструктуры.
- Масштабируемость атаки — эксплуатация требует лишь одного клика от жертвы, что делает её пригодной для массовых фишинговых кампаний, нацеленных на разработчиков.
Важно подчеркнуть: на данный момент нет подтверждённых случаев эксплуатации этой уязвимости в реальных атаках. Статус — наличие публичного PoC-кода. Точный охват полномочий OAuth-токена основан на утверждениях исследователя и не подтверждён формальным бюллетенем безопасности от Microsoft или GitHub.
Контекст раскрытия
Исследователь сообщил об уязвимости в трекер microsoft/vscode 2 июня 2026 года и практически сразу опубликовал технические детали. Такой подход к раскрытию исследователь мотивировал предыдущим опытом взаимодействия с Microsoft по уязвимостям в VS Code — в частности, ссылаясь на случаи, когда аналогичные проблемы оставались без своевременного исправления. Партнёр-менеджер по разработке ПО в Microsoft Александру Дима (Alexandru Dima) подтвердил, что компания работает над исправлением, и отдельно уточнил, что десктопная версия VS Code не подвержена данной уязвимости.
Рекомендации
До выпуска официального исправления от Microsoft целесообразно предпринять следующие меры:
- Минимизировать использование GitHub.dev — для работы с приватными и критически важными репозиториями предпочтительно использовать десктопную версию VS Code или GitHub CLI, которые не подвержены данной атаке.
- Проверить активные OAuth-токены — в настройках GitHub (Settings → Applications → Authorized OAuth Apps) убедиться в отсутствии подозрительных авторизаций и отозвать неиспользуемые токены.
- Проверить журналы аудита — для организаций на GitHub Enterprise просмотреть журнал аудита на предмет аномальных операций с репозиториями (массовое клонирование, неожиданные коммиты).
- Не переходить по подозрительным ссылкам, ведущим на GitHub.dev, особенно полученным по электронной почте или в мессенджерах.
- Ограничить область действия токенов — при использовании GitHub API и интеграций применять fine-grained personal access tokens с минимально необходимыми правами вместо классических токенов с широким доступом.
Разработчикам и организациям, активно использующим GitHub.dev, следует временно перейти на десктопную версию VS Code для работы с приватными репозиториями и отслеживать статус исправления в трекере Microsoft. Учитывая публичную доступность PoC-кода и отсутствие патча, окно для потенциальной эксплуатации остаётся открытым — ревизия активных OAuth-авторизаций в настройках GitHub является приоритетным действием прямо сейчас.