GitLab выпустил внеплановое обновление, закрывающее уязвимость максимальной опасности: неаутентифицированный атакующий мог выполнить произвольный код на сервере GitLab. Патч вышел в понедельник вместе с исправлениями ещё пяти уязвимостей высокой степени риска — в системе управления исходным кодом и платформе CI/CD.
Уязвимость получила идентификатор CVE-2026-97229 и оценку CVSS 10.0. Исправления доступны в версиях 19.4.2, 19.3.5 и 19.2.8 Community Edition (CE) и Enterprise Edition (EE).
CVE-2026-97229: переполнение целого в компиляторе регулярных выражений
GitLab описывает проблему как целочисленное переполнение (integer overflow) в компиляторе регулярных выражений CI/CD. При определённых условиях недостаточная проверка регулярных выражений позволяла неаутентифицированному атакующему выполнить произвольный код на сервере GitLab, передав специально сформированное регулярное выражение в конфигурации CI/CD.
Уязвимость затрагивает GitLab CE и EE версий от 19.2 до 19.2.8, от 19.3 до 19.3.5 и от 19.4 до 19.4.2. Оценка CVSS — максимальные 10.0: возможен удалённый запуск кода без аутентификации с влиянием на конфиденциальность, целостность и доступность за пределами границ безопасности.
GitLab благодарит исследователя Johan Carlsson, сообщившего об уязвимости через программу bug bounty HackerOne.
Пять уязвимостей высокой опасности: пайплайны, XSS и AI-агенты
Среди пяти уязвимостей высокой степени риска:
- CVE-2026-92883 (CVSS 8.7) — аутентифицированный пользователь мог выполнить произвольный JavaScript в сессиях других пользователей через специально сформированный репозиторий. Это XSS-уязвимость, вызванная некорректной очисткой HTML-атрибутов в выводе с подсветкой синтаксиса.
- CVE-2026-16301 (CVSS 8.5) — пользователи с ролью Developer могли запускать пайплайны CI/CD в защищённых ветках без авторизации.
- CVE-2026-14814 (CVSS 8.2) — атакующие могли подменить кэшированные ответы для необработанных файлов репозитория, что потенциально приводило к выполнению вредоносного содержимого в целевых пайплайнах и доступу к защищённым переменным окружения.
- CVE-2026-81839 (CVSS 7.7) — аутентифицированные пользователи могли запускать произвольные пайплайны в переданном проекте с привилегиями новой группы.
- CVE-2026-96893 (CVSS 7.3) — аутентифицированный пользователь мог внедрить специально сформированное содержимое в инструкции AI-агента, что потенциально приводило к нежелательному выполнению команд от имени других пользователей.
GitLab отмечает, что если тип развёртывания (omnibus, исходный код, Helm-чарт и т. д.) не указан явно, значит затронуты все типы.
Что делать администраторам
Компания настояла: администраторы самостоятельно развёрнутых инсталляций на затронутых версиях должны обновиться немедленно. GitLab.com уже работает на пропатченной версии, а клиентам GitLab Dedicated никаких действий предпринимать не нужно.
GitLab планирует раскрыть детали уязвимостей через 90 дней после релиза, в котором они были исправлены. Поэтому администраторам стоит в приоритетном порядке установить применимые обновления безопасности, не дожидаясь дальнейшего технического раскрытия.
Релиз также исправляет несколько уязвимостей низкой и средней степени риска, затрагивающих GitLab Pages, проксирование Kubernetes, GraphQL API, запросы на слияние, пользовательские роли, реестр пакетов, а также функции импорта репозиториев и проектов.
Частые вопросы
Кого касается CVE-2026-97229?
Всех, кто администрирует самостоятельно развёрнутый GitLab CE или EE версий от 19.2 до 19.2.8, от 19.3 до 19.3.5 и от 19.4 до 19.4.2. Пользователям GitLab.com и GitLab Dedicated действия не требуются.
Насколько опасна эта уязвимость?
CVSS 10.0 — максимальная оценка. Атакующему не нужна учётная запись: достаточно отправить специально сформированное регулярное выражение в конфигурации CI/CD, чтобы выполнить произвольный код на сервере.
Как проверить свою версию GitLab?
Версия указана в административной панели GitLab. Сравните её с исправленными выпусками: 19.2.8, 19.3.5 и 19.4.2. Если ваша версия ниже любой из них в соответствующей ветке — обновление обязательно.
Что делать, если обновиться прямо сейчас нельзя?
В доноре прямых рекомендаций по обходным мерам нет. Единственное указание GitLab — обновиться немедленно; детали уязвимости будут раскрыты через 90 дней после релиза с исправлением.
Уязвимость уже эксплуатируют?
В исходной публикации сведений об активной эксплуатации нет. GitLab сообщает об уязвимости как об исправленной, а не как об эксплуатируемой.
Затронуты ли обе редакции — CE и EE?
Да, исправления затрагивают и Community Edition, и Enterprise Edition. Часть проблем касается только Enterprise Edition, но CVE-2026-97229 — обеих редакций.
Нужно ли что-то делать пользователям GitLab.com?
Нет. GitLab.com уже работает на пропатченной версии, клиентам GitLab Dedicated также не нужно предпринимать действий.
Когда раскроют технические детали уязвимостей?
GitLab планирует опубликовать детали через 90 дней после релиза, в котором уязвимости были исправлены. До этого времени администраторам стоит установить обновления, не дожидаясь дополнительной информации.
Какие ещё компоненты затронуты в этом релизе?
Помимо перечисленных уязвимостей высокой опасности, релиз исправляет проблемы низкой и средней степени риска в GitLab Pages, проксировании Kubernetes, GraphQL API, запросах на слияние, пользовательских ролях, реестре пакетов и функциях импорта репозиториев и проектов.
Связана ли эта уязвимость с ранее закрытыми проблемами GitLab?
Это отдельный выпуск исправлений. Ранее GitLab закрывал другие критические уязвимости — например, path traversal с CVSS 10, критическую уязвимость в self-hosted AI Gateway и проблему в GraphQL без аутентификации. Нынешний набор патчей — самостоятельное обновление.
Источник: csoonline.com