Исследователь раскрыл уязвимость в GitHub.dev, позволяющую в один клик украсть OAuth-токен GitHub

Специалист по безопасности Аммар Аскар опубликовал рабочий PoC-эксплойт для уязвимости в браузерном редакторе GitHub.dev, который позволяет похитить OAuth-токен жертвы и получить полный доступ к её репозиториям, включая приватные. По данным исследователя, ошибка связана с механизмом обмена сообщениями между основным окном VS Code и веб-вью; на момент раскрытия патча не было. Аскар отказался от скоординированного раскрытия через Microsoft, сославшись на негативный прошлый опыт.

Специалист по безопасности Аммар Аскар (Ammar Askar) опубликовал работающий proof-of-concept (PoC) эксплойт для уязвимости в GitHub.dev — браузерной версии редактора Visual Studio Code (VS Code), доступной по адресу github.dev. По его описанию, атака позволяет в один клик похитить OAuth-токен жертвы и получить полный доступ на чтение и запись ко всем её репозиториям на GitHub, в том числе приватным.

Проблема связана с тем, как GitHub.dev получает учётные данные. При переходе пользователя с github.com в редактор github.dev сервер автоматически отправляет в сессию редактора OAuth-токен. По данным исследователя, этот токен не ограничен областью одного репозитория и даёт доступ ко всему, к чему имеет доступ сам пользователь.

Сам механизм похищения токена опирается на обработку веб-вью (webview) — встроенных областей, которые VS Code использует, например, для предпросмотра Markdown или редактирования Jupyter-блокнотов. Атакующий подготавливает вредоносный репозиторий с Jupyter-блокнотом и определением расширения рабочей области в каталоге .vscode, включая package.json с опасными привязками клавиш. Когда жертва открывает такой репозиторий по специально сформированной ссылке, через злоупотребление обменом сообщениями между основным окном VS Code и недоверенным веб-вью устанавливается вредоносное расширение, которое перехватывает передаваемый токен.

Аскар сообщил, что уведомил GitHub лишь примерно за час до публикации и предпочёл полное раскрытие без скоординированного оповещения Microsoft, сославшись на негативный опыт прошлого взаимодействия с Microsoft Security Response Center (MSRC). Microsoft относит к уязвимостям нулевого дня ошибки, которые публично раскрыты и/или активно эксплуатируются при отсутствии официального исправления. На момент раскрытия, по сообщениям, исправления не было, а код PoC и установленного расширения опубликован открыто.

До выпуска исправления, которое затронет обработку передачи нажатий клавиш в веб-вью и ограничит область выдаваемого github.dev токена, поверхность атаки остаётся открытой. Пользователям стоит с осторожностью открывать незнакомые репозитории через github.dev и пересмотреть права выданных OAuth-токенов.

Источник: bleepingcomputer.com

Связь с редакцией