Целочисленное переполнение в компиляторе регулярных выражений GitLab ведёт к выполнению кода и захвату учётных записей

GitLab

GitLab закрывает двенадцать уязвимостей в Community Edition (CE, свободная редакция) и Enterprise Edition (EE, коммерческая редакция). Самая тяжёлая позволяет выполнить произвольный код на сервере без аутентификации. Вторая заметная проблема даёт возможность войти в чужую учётную запись каталога LDAP при определённой настройке входа. Затронуты самоуправляемые установки обеих редакций, включая давно не обновлявшиеся ветки.

Выполнение кода, захват учётных записей и остальные исправления

Компилятор регулярных выражений (шаблонов поиска по тексту) разбирает специально составленный шаблон. При его компиляции счётчик целого числа переполняется, то есть значение выходит за отведённый диапазон и меняет разрядность. Дальше обработка уходит за границы выделенной памяти, и атакующий получает исполнение своего кода на сервере. Атака идёт по сети, учётные данные не нужны, участие пользователя не требуется. Вендор присвоил проблеме идентификатор CVE-2026-110264 и оценку 10.0 из 10, выше в этой шкале значений нет.

Вторая по значимости уязвимость CVE-2026-15723 связана со входом через внешних провайдеров. OmniAuth (механизм входа через сторонние сервисы) умеет автоматически связывать внешнюю учётную запись с записью в LDAP (протокол доступа к каталогу пользователей). Когда оба механизма включены, аутентифицированный пользователь подставляет данные так, что связывание уводит его в существующую запись другого сотрудника. Целевой пользователь ничего не подтверждает и подмены не замечает. Оценка 8.2 из 10, атака идёт по сети, учётная запись нужна, участие пользователя не требуется.

CVE-2026-112212 касается отравления кеша, то есть подмены сохранённого ответа, который затем получают другие посетители. Документ обнаружения OIDC (служебный ответ, по которому клиенты узнают адреса авторизации) собирается из присланных пользователем значений и попадает в общий кеш. Незарегистрированный посетитель подменяет в нём адрес, и часть входов уходит на внешний сервер под контролем атакующего. Оценка 7.5 из 10, учётные данные не нужны, но жертва должна сама начать вход.

CVE-2026-12664 обходит ограничения токена доступа с правами только на чтение через API. Запрос к GraphQL (языку запросов к API) отдаёт внутренний адрес электронной почты проекта, после чего позволяет создавать рабочие элементы в обход ограничений токена. Оценка 6.8 из 10, нужна действующая учётная запись.

Остальные проблемы среднего уровня затрагивают в основном коммерческую редакцию. Неполная блокировка членства через SAML (протокол обмена данными о входе между системами) или LDAP позволяет добавлять участников в обход провайдера идентификации. Фильтр внутренних заголовков ответа пропускает служебные учётные данные серверов, а API групповых вех (контрольных точек проекта) отдаёт названия, описания и полные пути закрытых проектов без проверки членства. Отдельная ошибка в проверке подписки открывает платные функции искусственного интеллекта.

Низкий уровень у четырёх проблем. Кеш заголовков запроса на слияние показывает заголовок конфиденциальной задачи из закрытого проекта. Политика обязательного одобрения на защищённой ветке обходится при синхронизации правил. Ошибка очистки при исключении позволяет пользователю с правами только на чтение удалить записи об уязвимостях. Администратор группы обходит блокировку, поставленную администратором экземпляра, и снова включает передачу данных в сторонний сервис.

Сведений об эксплуатации этих уязвимостей в реальных атаках вендор не приводит. Для самоуправляемых экземпляров GitLab выпустил два правила обнаружения попыток эксплуатации самой тяжёлой из них. Детали каждой проблемы станут публичными через 90 дней после выпуска исправлений. Исправление целочисленного переполнения дополнительно перенесено на ветки 18.11, 19.0, 19.1 и 19.2 сверх обычного набора.

Исправления вышли 21 октября 2026 года в версиях 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 и 18.11.13 для обеих редакций. Обновить нужно все самоуправляемые установки: пакеты omnibus, сборка из исходного кода и Helm-чарты затронуты одинаково. Арендаторам GitLab Dedicated на 19.3.5-internal0 и 19.4.2-internal0 или новее действия не нужны. Перед установкой сверьтесь со страницей выпуска на сайте вендора, там указаны точные пакеты и порядок миграции.

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

Ссылки

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