GitLab выпустил патч против XSS в аналитике и обхода прав на CI/CD

GitLab

Разработчики GitLab выпустили обновления для Community Edition (CE) и Enterprise Edition (EE), закрывающие 13 уязвимостей. Проблемы затронули широкий спектр функций: от аналитических панелей до API управления пайплайнами CI/CD. Часть ошибок позволяла пользователям с ограниченными правами выполнять действия, доступные только администраторам или владельцам проектов.

Детали уязвимостей

Наиболее опасные уязвимости связаны с межсайтовым скриптингом (XSS) в компонентах аналитических дашбордов. Ошибки CVE-2026-15216 и CVE-2026-15217 получили оценку 8,7 балла по шкале CVSS, что соответствует высокому уровню угрозы. Из-за некорректной нейтрализации пользовательского ввода при отрисовке содержимого таблиц и элементов пагинации злоумышленник с ролью разработчика мог внедрить вредоносный код. Если жертва с более высокими привилегиями открывала страницу с таким содержимым, код исполнялся в её браузере. Это открывало путь к краже сессионных данных, изменению конфигурации и выполнению действий от имени администратора.

Другая проблема высокой степени опасности - CVE-2026-15423 (8,5 балла) - касалась неправильной авторизации в API пайплайнов CI/CD. Аутентифицированный пользователь с ролью разработчика мог запускать конвейеры на защищённых ветках, не имея требуемых прав на публикацию изменений. На практике это позволяет внедрять вредоносные стадии сборки в репозитории, где защита веток настроена для предотвращения несанкционированных изменений. Поскольку защищённые ветки часто связаны с выпуском релизов, несанкционированный пайплайн может привести к компрометации итоговых артефактов.

Обход авторизации был также обнаружен в сервисе Duo Workflow (CVE-2026-19228, 8,5 балла). Из-за некорректной проверки данных об источнике запроса аутентифицированный пользователь мог "приписать" использование функций искусственного интеллекта чужому пространству имён (namespace). Такая ошибка приводит к искажению учёта ресурсов и потенциально позволяет манипулировать квотами потребления ИИ-функций. В корпоративной среде это может вызвать путаницу в биллинге и нарушения при разграничении доступа к вычислительным мощностям.

Уязвимость CVE-2026-16627 (7,7 балла) представляла собой XSS в модальном окне подтверждения ручного задания CI. Недостаточная очистка HTML-контента позволяла пользователю с ролью разработчика повысить свои привилегии. Сценарий эксплуатации аналогичен предыдущим XSS-ошибкам: вредоносный код мог срабатывать в контексте браузера более привилегированного пользователя, например администратора проекта, что даёт возможность перехватить управление учётной записью.

Среди других исправлений - отсутствие проверок авторизации в контроллере проектов (CVE-2026-16494, 7,1 балла). Это позволяло ограниченному пользователю изменять настройки проектов, доступные только ролям с более высокими привилегиями. Также закрыта DoS-уязвимость в JSON-парсере GraphQL API (CVE-2026-7427, 5,3 балла): неаутентифицированный злоумышленник мог вызвать отказ в обслуживании через специально сформированные запросы, что делает уязвимость особенно актуальной для публичных экземпляров GitLab.

Остальные уязвимости имеют средний и низкий уровень опасности, но их совокупное влияние не стоит недооценивать. Отсутствие проверок авторизации в API merge requests (CVE-2026-6821) позволяло пользователю обойти IP-ограничения и прочитать ограниченную информацию из приватных проектов. Аналогичная ошибка в API внешних проверок статуса (CVE-2026-4879) давала разработчикам доступ к конфигурациям, предназначенным для более привилегированных ролей. Проблема в npm dist-tags (CVE-2026-8667) давала возможность изменять метаданные пакетов без прав мейнтейнера, что потенциально влияет на целостность реестра артефактов.

Помимо этого, ошибка в настройках GitLab Duo (CVE-2026-18244) раскрывала ограниченные конфигурационные данные группы. GraphQL-резолвер правил ИИ (CVE-2026-18433) позволял читать политики из недоступных пространств имён. Наконец, уязвимость CVE-2025-9486 в кастомных ролях приводила к тому, что пользователь с ожидающим статусом членства (pending) получал привилегии, назначенные роли. Хотя оценка этой проблемы низкая (3,3 балла), она создаёт риск нарушения модели доступа при массовых заявках на вступление в проекты.

Уязвимости затрагивают все версии GitLab CE/EE с 12.0 по 19.2.2. Разработчики выпустили исправления в версиях 19.0.6, 19.1.4 и 19.2.2 в зависимости от ветки релиза. В бюллетене уточняется, что часть проблем обнаружили внешние исследователи через программу bug bounty на платформе HackerOne, часть - внутренние специалисты GitLab. Все находки были обработаны до публикации обновлений.

Пользователям рекомендуется обновить GitLab до актуальной версии в кратчайшие сроки. Особое внимание стоит уделить организациям, активно использующим CI/CD и аналитические панели, поскольку именно там сконцентрированы наиболее опасные ошибки. Для снижения риска до установки обновления можно временно ограничить доступ к интерфейсу управления и усилить проверку прав на уровне внешних систем, однако это не заменяет полноценного патча.

Эта волна исправлений снова обращает внимание на проблему недостаточных проверок авторизации в веб-приложениях. Многие уязвимости возникают не из-за сложных логических ошибок, а из-за пропущенных проверок прав на отдельных конечных точках. GitLab последовательно закрывает такие бреши, однако их количество говорит о необходимости системного пересмотра моделей доступа и усиления автоматизированного тестирования прав в процессах разработки.

Ссылки

Комментарии: 0