Исследователь безопасности опубликовал разбор уязвимости в VSCode Web (github.dev), которая позволяет атакующему украсть GitHub-токен пользователя буквально после одного клика по ссылке.
Этот токен дает доступ к репозиториям пользователя (включая приватные) с возможностью чтения и записи.
Где проблема
Уязвимость находится в модели безопасности webview внутри VSCode Web.
Хотя веб-версия редактора изолирует интерфейсы через iframe и систему сообщений, часть функциональности все равно обрабатывает события клавиатуры и UI-команды, пришедшие из «песочницы».
Именно это и стало точкой атаки: вредоносный код внутри webview может имитировать действия пользователя.
Как работает атака
Сценарий выглядит неожиданно простым для пользователя:
- пользователь открывает специально подготовленный notebook в github.dev;
- внутри него запускается JavaScript;
- код эмулирует нажатия клавиш и UI-действия;
- VSCode автоматически соглашается на установку расширения;
- вредоносное расширение получает доступ к GitHub OAuth-токену.
Дальше расширение использует токен и обращается к GitHub API, вытягивая список репозиториев и приватные данные.
Почему это опасно
Проблема в том, что токен, выдаваемый github.dev, не ограничен одним репозиторием — он может иметь доступ ко всем репозиториям пользователя.
В результате компрометация одного сеанса VSCode Web фактически превращается в полный доступ к GitHub-аккаунту.
Десктопная версия тоже под угрозой
Атака потенциально применима и к VSCode Desktop, но требует дополнительных условий — например, открытия вредоносного репозитория или notebook-файла.
Реакция и меры
Microsoft уже внесла частичный фикс: добавлены дополнительные подтверждения при открытии notebook и запрещены некоторые сценарии обхода доверия к расширениям.
Однако исследователь отмечает, что проблема лежит глубже — в самой модели взаимодействия webview и командной системы VSCode.
ЧИТАЙТЕ НОВОСТИ В ТГ
Нравятся наши новости? Получайте их первыми — мы каждый день отбираем лучшее из всего, что происходит в IT, чтобы вы ничего не пропустили. ССЫЛКА на подписку (можно просто кликнуть) — ждём внутри канала :)
А ещё…сохраните промокод Практикума на любой платный курс: KOD. Он даст скидку при покупке и позволит сэкономить на обучении.
Бесплатные курсы в Практикуме тоже есть — по всем специальностям и направлениям.
