Planetahost VPS
Перейти к основному контенту

Критическая уязвимость в GitLab (CVE-2026-19478)

intro_kriticheskaya_uyazvimost_v_gitlab_cve_2026_19478_planetahost.png

Информация об уязвимости
Дата публикации 17 августа 2026
CVE CVE-2026-19478
Продукт GitLab CE / EE
Компонент GraphQL API
Тип уязвимости Нарушение контроля доступа
Уровень опасности Критический
Вектор атаки Удалённо через Интернет
Требуется аутентификация Нет
Уязвимые версии 18.2 до 18.11.10
19.0 до 19.0.7
19.1 до 19.1.5
19.2 до 19.2.3
Исправлено в 18.11.11, 19.0.8, 19.1.6, 19.2.4

Введение

В GitLab обнаружена критическая уязвимость CVE-2026-19478, позволяющая неавторизованному злоумышленнику удалённо изменять или удалять общедоступные проекты и пользовательские данные.

Проблема связана с обработкой специальных директив в GraphQL API GitLab. В определённых условиях сервер неправильно проверяет права доступа к операциям, которые должны быть доступны только авторизованным пользователям.

Уязвимость получила оценку 9.4 из 10 по CVSS 3.1 и особенно опасна для самостоятельно установленных экземпляров GitLab, доступных из Интернета.


Что произошло

GitLab предоставляет GraphQL API для выполнения запросов и изменения данных. В отличие от обычных запросов к веб-интерфейсу, GraphQL позволяет клиенту отправлять структурированные операции, описывающие необходимые действия с объектами GitLab.

Проблема CVE-2026-19478 связана с одной из специальных директив GraphQL.

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

Что может сделать злоумышленник

После успешной эксплуатации атакующий получает возможность выполнять операции с общедоступными объектами GitLab.

  • изменять содержимое общедоступных проектов;
  • удалять общедоступные проекты;
  • изменять пользовательские данные;
  • удалять пользовательские данные;
  • выполнять эти действия без предварительной аутентификации.

Пример эксплуатации

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

Например, исследовательский запрос может выглядеть как обычная GraphQL-операция:

query {
  projects(first: 1) {
    nodes {
      id
      name
    }
  }
}

Сам по себе такой запрос не является эксплуатацией уязвимости. Он показывает лишь то, что GraphQL API принимает запрос без обычного интерфейса GitLab.

Суть CVE-2026-19478 находится дальше: специальным образом сформированная GraphQL-операция позволяет добраться до операций изменения данных, которые должны быть защищены проверкой прав.

Поэтому не стоит использовать удаление реального проекта в качестве проверки. Для лабораторного воспроизведения лучше создать отдельный тестовый экземпляр GitLab и использовать исключительно тестовые данные.

Важно

Аутентификация при эксплуатации не требуется.

Уязвимость особенно опасна для самостоятельно установленных экземпляров GitLab, доступных из Интернета. Злоумышленнику не требуется учётная запись в системе, чтобы отправлять запросы к уязвимому GraphQL API.

Почему это опасно

GitLab часто является центральной системой разработки компании. В нём могут находиться исходный код, задачи, настройки проектов, документация и другая важная информация.

Удаление общедоступного проекта само по себе уже может привести к серьёзным последствиям. Кроме того, изменение данных может использоваться для подмены информации в проекте или нарушения рабочих процессов.

При этом CVSS 9.4 обусловлен сочетанием нескольких факторов:

  • атака выполняется удалённо;
  • не требуется сложная подготовка;
  • не требуется учётная запись;
  • не требуется участие пользователя;
  • возможны изменения данных;
  • возможна их потеря.
Решение

Если используется самостоятельно установленный GitLab, рекомендуется как можно скорее обновить его до исправленной версии:

  • 18.11.11 и новее;
  • 19.0.8 и новее;
  • 19.1.6 и новее;
  • 19.2.4 и новее.

После обновления рекомендуется дополнительно проверить журналы GitLab на подозрительные обращения к GraphQL API, особенно если экземпляр был доступен из Интернета до установки исправления.

Проверка системы

Версию установленного GitLab можно посмотреть в веб-интерфейсе:

Справка → О GitLab

Для серверной установки также можно использовать:

sudo gitlab-rake gitlab:env:info

В выводе найдите текущую версию GitLab и сравните её с исправленными версиями.

Например:

GitLab version: 19.2.3

Такая версия уязвима.

Версия:

GitLab version: 19.2.4

уже содержит исправление.

Кого затрагивает уязвимость

CVE-2026-19478 затрагивает GitLab Community Edition (CE) и Enterprise Edition (EE) в уязвимых версиях.

При этом владельцам GitLab.com и GitLab Dedicated самостоятельно устанавливать обновление не требуется: эти сервисы работают на исправленных версиях.

Дополнительно

CVE-2026-19478 представляет собой особенно неприятный сценарий для GitLab: удалённый злоумышленник без учётной записи может воздействовать на данные через GraphQL API.

Главная проблема для администраторов заключается не только в высокой оценке CVSS 9.4, но и в отсутствии требования к аутентификации. Если GitLab доступен из Интернета и работает на уязвимой версии, обновление стоит выполнить в первую очередь.