Mastodon Mastodon Mastodon Mastodon

CVE-2026-90970 в GitLab AI Gateway: риск RCE и компрометации JWT-ключей

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

GitLab AI Gateway получил критическую уязвимость CVE-2026-90970 (CVSS 9.9), позволяющую аутентифицированному пользователю с доступом к Duo Agent Platform при определённых условиях выполнить произвольные команды на шлюзе; под угрозой находятся только организации с self-hosted AI Gateway, которые обязаны немедленно обновить шлюз до версий 19.2.4, 19.3.2 или 19.4.1, иначе они рискуют потерять контроль над JWT-ключами и каналами связи между GitLab и провайдерами моделей.

Технические детали уязвимости

Согласно официальному advisory GitLab по выпуску патча для AI Gateway версий 19.2.4, 19.3.2 и 19.4.1 (patch-release gitlab-ai-gateway-19-4-1), CVE-2026-90970 описана как критическая слабость в механизме шаблонов подсказок (prompt template) в пользовательских потоках (custom flow) Duo Agent Platform:

  • Идентификатор: CVE-2026-90970 (критическая; CVSS 9.9 по сообщению GitLab, подтверждена записью CVE-проекта: запись CVE-2026-90970).
  • Класс слабости: CWE-1336 (ошибки в шаблонизаторах и системах генерации кода; указано GitLab как общий класс и для февральского CVE-2026-1868).
  • Тип воздействия: возможность «escape the prompt template sandbox» с последующим выполнением произвольных команд на AI Gateway.
  • Требуемые права: аутентифицированный пользователь с доступом к Duo Agent Platform и возможностью создавать/изменять custom flow; дополнительных ролей в advisory не названо.

Суть проблемы — в том, что механизм шаблонов, который должен изолировать исполняемый контекст (песочница для prompt template), может быть обойдён через специально сконструированную конфигурацию потока. В терминах модели угроз это превращает пользовательское описание AI-потока в канал для инъекции конструкций, приводящих к выполнению команд на хост-среде шлюза.

GitLab подчёркивает, что эксплуатация ведёт именно к выполнению команд на AI Gateway, а не напрямую на GitLab-сервере. Однако в архитектуре self-hosted Duo AI Gateway этот компонент является доверенным посредником и содержит чувствительные элементы:

  • на шлюзе хранятся ключи подписи JWT, используемых для обмена между GitLab и шлюзом (адресовано в документации по self-hosted Duo: GitLab Duo Self-Hosted);
  • шлюз поддерживает соединения и с самим GitLab-инстансом, и с провайдерами моделей.

С точки зрения угроз это означает, что успешное выполнение команд на AI Gateway может привести как минимум к:

  • компрометации JWT-ключей (потеря доверия ко всем токенам, подписанным этим шлюзом);
  • возможности манипулировать трафиком между GitLab и провайдерами моделей (подмена запросов/ответов, утечка содержимого подсказок и кодовой базы, если они проходят через шлюз);
  • использованию шлюза как точки опоры для дальнейшего продвижения по сети.

Запись о CVE в NVD, созданная на основе информации от GitLab и CVE-проекта, доступна по стандартному идентификатору CVE-2026-90970 в NVD, что закрепляет оценку как критическую и подтверждает удалённое выполнение кода (RCE) при наличии аутентификации.

Затронутые и исправленные версии

AI Gateway поставляется как отдельный компонент (Docker-образ или Helm chart) и обновляется независимо от основной версии GitLab. В advisory GitLab по AI Gateway (документация по установке и обновлению AI Gateway) фиксируются такие ключевые моменты:

  • Исправленные версии AI Gateway:
    • 19.2.4
    • 19.3.2
    • 19.4.1
  • Нет исправлений для веток ниже 19.2.4, при этом в advisory явно указано, что все релизы от 18.1.6 до включая линию 19.1 подпадают под диапазон затронутых версий.
  • GitLab поддерживает (по состоянию на 2 октября) только ветки GitLab 19.4, 19.3 и 19.2, что отражено в политике сопровождения: GitLab maintenance policy. Те же линии получили патчи AI Gateway.

Для обновления Docker-развёртывания GitLab рекомендует остановить и удалить текущий контейнер AI Gateway, затем загрузить и запустить образ с новым тегом (например, self-hosted-v19.4.1-ee). Для Helm-развёртываний достаточно изменить тег образа в настройках chart и применить обновление.

Организации, использующие GitLab.com, GitLab Dedicated или self-managed GitLab с хостингом AI Gateway на стороне GitLab, защищены автоматически: провайдер уже обновил свои шлюзы. Действия требуются только от владельцев self-hosted шлюзов.

Advisory подчёркивает два важных ограничения:

  • GitLab не предоставляет обходных решений (workaround) для тех, кто пока не может обновить шлюз.
  • Не описаны надёжные диагностические методы, по которым администратор мог бы однозначно определить факт прошлой эксплуатации уязвимости на своём шлюзе.

Согласно оценке CISA, добавленной к записи CVE 2 октября, статус эксплуатации — «none» (отсутствуют сведения о публичной эксплуатации или proof-of-concept). Но это моментальное состояние: класс уязвимости и высокая оценка CVSS делают её привлекательной целью, особенно после публикации деталей патча.

Повторяющийся класс уязвимостей в AI Gateway

В феврале GitLab уже устранял критическую проблему того же класса в AI Gateway — CVE-2026-1868, также с оценкой 9.9 и аналогичным вектором: crafted flow definition, приводящий к отказу в обслуживании или выполнению кода на шлюзе. Патч описан в отдельном advisory GitLab: patch-release gitlab-ai-gateway-18-8-1.

Обе уязвимости относятся к CWE-1336 — нарушениям безопасности в системах шаблонов. Последовательность из двух критических инцидентов за менее чем год указывает на то, что:

  • механизм шаблонов для пользовательских потоков в Duo Agent Platform является высокорисковой частью архитектуры;
  • традиционные методы тестирования (включая unit-тесты и стандартный безопасностный review) не покрывают все сценарии злоупотребления custom flow;
  • для защиты подобных платформ с возможностью настройки AI-потоков необходим целенаправленный security review шаблонизаторов и строгие ограничения доступных конструкций.

Для потребителей это означает, что риск не ограничивается единичным CVE: сама модель предоставления мощных средств конфигурирования AI-потоков конечным пользователям требует от администраторов более аккуратной настройки прав и постепенного ввёртывания таких функций в критические процессы.

Оценка воздействия и профиль риска

Основная зона риска — организации, которые:

  • разворачивают self-hosted GitLab AI Gateway в собственных средах;
  • предоставляют доступ к Duo Agent Platform широкому кругу разработчиков и команд, а не ограниченному доверенному ядру;
  • используют AI-функции GitLab (GitLab Duo) для работы с чувствительным кодом или данными (IP, конфиденциальные артефакты, внутренние модели).

При отсутствии обновления потенциальные последствия включают:

  • Компрометация аутентификации и авторизации:
    • злоумышленник, получивший доступ к шлюзу, может извлечь JWT-ключи либо манипулировать процессом выдачи токенов;
    • в результате — возможность подделки доверенных взаимодействий между GitLab и AI Gateway.
  • Утечка данных:
    • доступ к содержимому запросов и ответов AI-моделей;
    • косвенный доступ к кодовой базе и артефактам, если они участвуют в AI-потоках.
  • Расширение периметра атаки:
    • использование шлюза как точки входа для дальнейшего продвижения в инфраструктуре (перемещение к GitLab-серверу, базам данных, сетевым сегментам, в которых расположен gateway);
    • переход от «внутренней» уязвимости (требуется авторизация в Duo Agent Platform) к сценарию, где скомпрометированный внутренний аккаунт приносит максимальный ущерб.

Нужно учитывать, что наличие аутентификации не делает уязвимость малозначимой: в типичной DevOps-среде права на создание custom flow часто имеют разработчики и инженеры, уже обладающие широкими возможностями. CVE-2026-90970 превратит любой скомпрометированный аккаунт с такими правами в прямой рычаг для захвата AI Gateway.

Практические рекомендации по реагированию

1. Немедленное обновление self-hosted AI Gateway

  1. Определите, используете ли вы self-hosted AI Gateway:
    • проверьте документацию собственной инсталляции или следуйте разделу «self-hosted» в руководстве GitLab Duo: GitLab Duo Self-Hosted;
    • если вы используете GitLab.com или GitLab Dedicated без собственного шлюза, данный шаг можно пропустить — шлюз уже обновлён GitLab.
  2. Определите текущую версию AI Gateway:
    • для Docker — по тегу образа/контейнера;
    • для Helm — по указанному тегу образа в values-файле chart.
  3. Если версия ниже 19.2.4, 19.3.2 или 19.4.1:
    • для Docker:
      1. остановите и удалите работающий контейнер AI Gateway;
      2. загрузите новый образ с исправленным тегом (self-hosted-v19.2.4-ee, self-hosted-v19.3.2-ee или self-hosted-v19.4.1-ee — в зависимости от вашей ветки GitLab, см. инструкцию по обновлению);
      3. запустите новый контейнер с теми же параметрами среды и сети.
    • для Helm:
      1. обновите тег образа AI Gateway в конфигурации chart до одной из исправленных версий;
      2. примените обновление (helm upgrade ...).

2. Управление доступом к Duo Agent Platform

  • Пересмотрите список пользователей, имеющих доступ к Duo Agent Platform и правам создания/редактирования custom flow.
  • Сведите этот доступ к минимально необходимому набору ролей, особенно в средах с self-hosted AI Gateway.
  • Временно ограничьте эксперименты с пользовательскими потоками в продуктивных средах до завершения обновления и дополнительной оценки рисков.

3. Постинцидентный анализ и мониторинг

Поскольку GitLab не предоставил готового способа проверки факта эксплуатации, имеет смысл провести расширенный анализ активности вокруг AI Gateway и Duo Agent Platform за период до обновления:

  • проанализируйте журналы доступа к Duo Agent Platform:
    • создание или модификацию нестандартных custom flow;
    • подозрительные частые или сложные изменения в конфигурациях потоков;
  • проверьте журналы контейнера или пода AI Gateway на предмет:
    • нетипичных команд в системных логах;
    • ошибок, связанных с выполнением шаблонов (exceptions в шаблонизаторе);
    • подозрительных исходящих соединений к необычным хостам.
  • если есть основания предполагать эксплуатацию:
    • считайте JWT-ключи на шлюзе скомпрометированными;
    • инициируйте процедуру ротации ключей и пересоздания доверенных связей между GitLab и AI Gateway.

4. Долгосрочные меры

  • Внедрите практику раздельного развёртывания:
    • отдельные среды для экспериментов с AI-потоками и для продуктивных AI-интеграций;
    • отдельные экземпляры AI Gateway для особо чувствительных проектов при необходимости.
  • Включите обновления AI Gateway в общий процесс управления патчами наравне с GitLab core:
    • проверка актуальных advisory GitLab для AI Gateway;
    • регулярная сверка с поддерживаемыми версиями в maintenance policy.
  • Переоцените модель доверия к AI-компонентам:
    • рассматривайте AI Gateway как высокочувствительный сервис с эквивалентной критичностью GitLab-серверу;
    • ограничьте сетевой доступ к шлюзу и используйте отдельные сегменты сети и контроль межсетевого обмена.

Ключевой приоритет для владельцев self-hosted GitLab AI Gateway — в ближайшее время обновить шлюз до одной из исправленных версий (19.2.4, 19.3.2 или 19.4.1), затем пересмотреть права доступа к Duo Agent Platform и провести хотя бы базовый аудит журналов шлюза и custom flow за период до обновления.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.