GitHub выпустил внеплановые обновления безопасности для Enterprise Server, закрывающие несколько уязвимостей в версиях вплоть до 3.21. В бюллетене перечислены четыре проблемы с рейтингом "средняя" по шкале CVSS v4, самая критическая из которых получила оценку 6,3 балла. Уязвимости были сообщены через программу Bug Bounty компании, и все они затрагивают ключевые функции платформы, включая обсуждения, механизмы авторизации OAuth и работу Copilot.
Детали уязвимостей
Наибольшее внимание привлекает уязвимость CVE-2026-10585 - межсайтовый скриптинг (XSS) с сохранением в обсуждениях категории "Вопросы и ответы". Аутентифицированный злоумышленник мог создать обсуждение с заголовком, содержащим вредоносный JavaScript-код. Когда другой пользователь помечал комментарий в этом обсуждении как ответ, код выполнялся в браузере жертвы - это происходило из-за некорректной обработки пользовательского ввода в блоке структурированных данных JSON-LD. В результате атакующий мог получить доступ к сессионным данным жертвы, манипулировать страницами на экземпляре GitHub Enterprise Server или перехватывать действия пользователя. GitHub обновил рендеринг JSON-LD, чтобы корректно экранировать данные, вводимые пользователем.
Другая уязвимость - CVE-2026-9106 с оценкой 5,3 - связана с вводящей в заблуждение формой согласия OAuth. Область разрешений manage_runners:org, запрашиваемая OAuth-приложением, не отображалась на экране авторизации. Это позволяло атакующему подтолкнуть администратора организации к авторизации заведомо вредоносного приложения. В случае успеха приложение получало доступ к функциям управления раннерами (runner management) организации - с возможностью запускать или останавливать сборки, изменять конфигурацию исполнителей. Эксплуатация требовала от жертвы перехода по ссылке на подставное приложение и подтверждения неполного списка разрешений.
Самая опасная с точки зрения последствий уязвимость - CVE-2026-9132 с оценкой 6,0. Проблема заключалась в отсутствии проверки прав доступа в конечной точке Copilot pull request description diff summary. Аутентифицированный пользователь мог получить исходный код из приватных репозиториев, к которым у него не было доступа, указав в запросе диапазон сравнения коммитов из разных репозиториев. Copilot обрабатывал этот запрос, не проверяя, имеет ли пользователь разрешение на просмотр целевого репозитория. Таким образом, злоумышленник мог вычитать конфиденциальный код, архитектурную документацию и коммерческие секреты, хранящиеся в приватных репозиториях. Уязвимость затрагивает все организации, использующие Copilot для работы с закрытыми проектами.
Кроме того, во всех версиях, кроме последней 3.21.2, присутствует уязвимость CVE-2026-14340 (оценка не указана, но определена как "средняя"). Она позволяла создавать issue, комментарии и приватные отчёты об уязвимостях в публичных репозиториях от имени любой учётной записи. Атакующий использовал токен user-to-server (u2s) - такой токен получает GitHub App после установки. Проблема заключалась в том, что эндпоинты проверяли только права на чтение репозитория, но не требовали отдельного разрешения на запись. В результате можно было имитировать действия любого пользователя репозитория. Этот вектор представляет серьёзную угрозу для проектов с открытым исходным кодом, где репутация владельца репозитория может быть скомпрометирована недобросовестным комментарием или ложным отчётом о безопасности.
Все перечисленные проблемы исправлены в следующих версиях GitHub Enterprise Server: 3.16.20, 3.17.17, 3.18.11, 3.19.8, 3.20.4 и 3.21.2. Пользователям серверных инсталляций рекомендуется обновиться до указанных сборок. Временные меры защиты не предусмотрены - только установка патча.
Обращает на себя внимание тот факт, что уязвимость Copilot стала второй за последние полгода, связанной с некорректной проверкой прав в AI-ассистенте платформы. Ранее в ноябре 2025 года GitHub уже закрывал похожую проблему в том же эндпоинте, но патч оказался неполным. CVE-2026-9132 - пример того, что механизмы контроля доступа сложнее всего отладить в функциях, работающих с перекрёстными данными между репозиториями.
Также в обновления вошли исправления для DNS-прокси dnsmasq (CVE-2026-4891, CVE-2026-4890, CVE-2026-4892, CVE-2026-4893, CVE-2026-5172, CVE-2026-2291) - эти уязвимости затрагивали работу DNS-разрешения на экземпляре сервера, но эксплуатация требовала сетевого доступа к DNS-серверу.
Общая тенденция: атаки через стандартные функции GitHub - Discussions, Copilot, OAuth - становятся всё более востребованным вектором среди исследователей безопасности. GitHub последовательно расширяет программу Bug Bounty и оперативно реагирует на отчёты, однако число критических патчей для Enterprise Server остаётся высоким: за первый квартал 2026 года это уже четвёртый внеплановый раунд исправлений. Администраторам корпоративных инсталляций стоит уделять приоритетное внимание обновлениям, особенно при использовании Copilot и OAuth-интеграций.
Ссылки
- https://docs.github.com/en/enterprise-server@3.21/admin/release-notes
- https://docs.github.com/en/enterprise-server@3.20/admin/release-notes
- https://docs.github.com/en/enterprise-server@3.19/admin/release-notes
- https://docs.github.com/en/enterprise-server@3.18/admin/release-notes
- https://docs.github.com/en/enterprise-server@3.17/admin/release-notes