GitLab исправляет критические уязвимости GraphQL, позволяющие изменять и удалять проекты

GitLab

GitLab выпустил обновления безопасности для Community Edition и Enterprise Edition - серверного продукта, используемого для хостинга кода и автоматизации разработки. Патчи закрывают две уязвимости в обработке запросов GraphQL. Одна из них имеет критический уровень и позволяет неавторизованному удалённому злоумышленнику изменять или удалять публичные проекты и пользовательские данные. Вторая, высокая, связана с подделкой межсайтовых запросов. Администраторам самоуправляемых установок настоятельно рекомендуется немедленно перейти на исправленные версии.

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

Наиболее опасная проблема отслеживается как CVE-2026-19478. Это кодовая инъекция через обработку директив GraphQL. GraphQL - язык запросов для взаимодействия между клиентом и сервером через API. Директивы выступают как инструкции, изменяющие выполнение запроса. Из-за ошибки в обработке входных данных атакующий может внедрить в процесс собственный код. Уязвимость получила 9.4 балла по шкале CVSS, что соответствует критическому уровню. Атака не требует аутентификации и выполняется по сети, а её влияние на целостность и доступность данных оценивается как высокое. Конфиденциальность затронута лишь частично. Практическое следствие: злоумышленник может модифицировать или уничтожить содержимое публичных репозиториев, включая исходный код, документацию, конфигурации непрерывной интеграции, файлы описания инфраструктуры и другие артефакты. Это способно нарушить работу проектов, подменить сборочные определения или удалить данные, доступные через публичные репозитории. Для организаций, использующих GitLab как основное хранилище кода, такая атака может обернуться серьёзным ущербом, вплоть до полной потери критически важных файлов.

Вторая уязвимость, CVE-2026-19650, относится к типу Cross-Site Request Forgery - подделка межсайтовых запросов. Она локализована в обработчике мультиплексных запросов GraphQL. Суть проблемы в некорректной проверке входных данных: запросы, отправленные через GET, могут выполнять мутации - операции изменения информации. Чтобы воспользоваться этим, атакующему необходимо заставить пользователя перейти по специально сформированной ссылке. Взаимодействие с жертвой обязательно, но при успехе злоумышленник получает возможность изменять ресурсы, доступные этой учётной записи. Особенно привлекательными целями становятся администраторы и пользователи с расширенными правами на проекты и группы. Уязвимость получила 7.1 балла по шкале CVSS, что соответствует высокому уровню опасности. Хотя эксплуатация требует участия человека, риск компрометации данных остаётся существенным.

Обе уязвимости затрагивают версии GitLab, начиная с 18.2 и заканчивая версиями, предшествующими исправленным. Проблема актуальна только для самоуправляемых инсталляций - то есть тех, которые организации разворачивают на собственных серверах. Облачные сервисы GitLab.com и GitLab Dedicated уже работают на исправленных версиях, поэтому их пользователям не нужно предпринимать никаких действий. Учитывая широкое распространение GitLab для корпоративной разработки, критическая уязвимость представляет серьёзную угрозу для компаний, которые ведут публичные проекты или предоставляют доступ к коду внешним участникам. Информации о реальных атаках с использованием этих уязвимостей на момент публикации не поступало.

Разработчики выпустили версии 19.2.4, 19.1.6, 19.0.8 и 18.11.11, в которых закрыты обе проблемы. Эти версии охватывают все поддерживаемые ветки продукта. Обновить необходимо все самоуправляемые установки независимо от способа развертывания: с помощью пакетов Omnibus, из исходных кодов, через Helm-чарты для Kubernetes или иными методами. В релизе отсутствуют новые миграции базы данных, поэтому многоузловые развертывания могут быть обновлены без простоя при соблюдении официальной инструкции. При этом пакеты Omnibus по умолчанию во время обновления останавливают сервисы, выполняют миграции и перезапускаются. Администраторам, планирующим управляемое обновление, стоит заранее изучить документацию GitLab и процедуры для своей конфигурации. Технические детали уязвимостей GitLab публикует через 90 дней после выпуска исправления, чтобы у администраторов было достаточно времени для обновления до того, как информация о проблемах станет открытой. Исследователи, обнаружившие уязвимости, сообщили о них в рамках программы bug bounty HackerOne, за что получили вознаграждение.

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

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

Ссылки

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