GitLab CI: выполнение кода без входа (CVE-2026-97229)
На своём GitLab CE/EE 19.2–19.4 слабая проверка выражения в CI/CD позволяла выполнить код без входа. Обновите инстанс до 19.2.8, 19.3.5 или 19.4.2.
Коротко о главном
- Чем опасно
- Посторонний мог запустить код на стороне GitLab, не входя в систему
- С чего начать защиту
- Обновите GitLab: 19.2 до 19.2.8, 19.3 до 19.3.5, 19.4 до 19.4.2 или новее.
- Как подтвердить
- Нужны ручной аудит и проверка реализации. Отсутствие находок во внешнем скане не подтверждает безопасность.
- Продукт
- GitLab
- Оценка риска
- CVSS 10 / 10
Как проверить и что учитывать
Нужна ручная проверка
Снаружи не видно содержимое CI и точную сборку GitLab. Запись не обещает, что проверка сайта найдёт CVE-2026-97229. Это не запись CISA KEV. Не делайте вывод о наличии уязвимости только по одному внешнему признаку: подтвердите результат в настройках и версии компонента.
Что нужно для подтверждения
Администратор сверяет версию GitLab с бюллетенем 19.4.2.
Ограничения вывода
- Открытый .gitlab-ci.yml в зеркале не доказывает, что уязвим ваш инстанс.
- Успешная сборка пайплайна не означает, что код уже выполняли злоумышленники.
Что произошло
GitLab проверяет выражения в конфигурации CI/CD. В версиях 19.2, 19.3 и 19.4 этой проверки было недостаточно, и не вошедший пользователь мог добиться выполнения кода.
Это отдельный бюллетень от 13 октября 2026 года. Исправление чтения файлов CVE-2026-85706 его не закрывает.
Кого это касается
Свой сервер GitLab CE/EE веток 19.2, 19.3 и 19.4 ниже указанных патчей. Облачный GitLab.com обновляет поставщик.
На октябрь 2026 года запись не числится в CISA KEV. Отсутствие в этом каталоге не отменяет обновление: оценка CVSS у бюллетеня критическая.
| Ветка | Затронуто | Исправление |
|---|---|---|
| 19.2 | ниже 19.2.8 | 19.2.8 |
| 19.3 | ниже 19.3.5 | 19.3.5 |
| 19.4 | ниже 19.4.2 | 19.4.2 |
Как проверить установленную версию
Команда ниже выполняется на своём сервере и печатает сведения об установке.
gitlab-rake gitlab:env:infoКак снизить риск
Установите патч своей ветки. Пока обновление не поставлено, не считайте защитой отключение одного проекта: ошибка в самом GitLab.
Внешний осмотр сайта не читает конфигурацию CI. Сверьте версию сами и только потом опирайтесь на общую проверку домена как на ограниченный взгляд снаружи.
Что может произойти
- Посторонний мог запустить код на стороне GitLab, не входя в систему
- Под угрозой раннеры, переменные CI и секреты сборок
- Обычная проверка файла пайплайна в репозитории эту ошибку не закрывает
Как защититься
- 1Обновите GitLab: 19.2 до 19.2.8, 19.3 до 19.3.5, 19.4 до 19.4.2 или новее.
- 2После обновления посмотрите новые пайплайны и список раннеров, которых вы не добавляли.
- 3Смените переменные CI, если инстанс был доступен из интернета на уязвимой версии.
Как проходит проверка
Снаружи не видно содержимое CI и точную сборку GitLab. Запись не обещает, что проверка сайта найдёт CVE-2026-97229. Это не запись CISA KEV. Автоматический результат показывает внешний признак риска и требует проверки специалистом с учётом конкретной конфигурации.
Проверить другие внешние рискиЧто делать после обнаружения
- Сохраните номер версии до обновления.
- Проверьте журнал работ CI за период до патча.
- Повторите обновление на каждом инстансе, не только на основном.
Частые вопросы
Что означает риск «GitLab CI: выполнение кода без входа»?
На своём GitLab CE/EE 19.2–19.4 слабая проверка выражения в CI/CD позволяла выполнить код без входа. Обновите инстанс до 19.2.8, 19.3.5 или 19.4.2.
Можно ли подтвердить проблему только внешней проверкой?
Снаружи не видно содержимое CI и точную сборку GitLab. Запись не обещает, что проверка сайта найдёт CVE-2026-97229. Это не запись CISA KEV. Итог нужно сопоставить с конфигурацией, версиями и правами доступа на вашем сайте.
Что сделать в первую очередь?
Обновите GitLab: 19.2 до 19.2.8, 19.3 до 19.3.5, 19.4 до 19.4.2 или новее.