Назад к блогу

GitLab закрыл path-traversal в repository commits API: кому обновляться и что делать после

GitLab закрыл path-traversal в repository commits API: кому обновляться и что делать после

В GitLab обнаружена критическая path-traversal уязвимость с максимальным рейтингом CVSS 10.0, позволяющая неаутентифицированному злоумышленнику читать любые файлы на сервере — включая CI/CD-переменные, токены и SSH-ключи. Поскольку эксплойты появились уже через несколько часов после раскрытия, а сама уязвимость попала в каталог известных эксплуатируемых CISA, администраторам self-managed инсталляций стоит не только срочно обновиться, но и провести ротацию всех потенциально скомпрометированных секретов.

В GitLab раскрыта критическая уязвимость path traversal CVE-2026-85706. Она позволяет неаутентифицированному удалённому атакующему читать произвольные файлы с сервера GitLab. Уязвимость затрагивает self-managed GitLab CE/EE и получила оценку CVSS 10.0.

Патч выпущен 11 сентября, а через несколько часов после раскрытия, по отчёту security-фирмы watchTowr, атакующие уже проводили пробы в реальных условиях. Позднее CISA добавила уязвимость в каталог Known Exploited Vulnerabilities (KEV).

Что именно изменилось

Уязвимы self-managed GitLab CE/EE. Исправления содержатся в версиях 19.3.2, 19.2.6 и 19.1.8 — на них и нужно обновляться в зависимости от применимости.

Через две недели после первоначального выпуска исправления GitLab backport фикс в версии 19.0.9 и 18.11.12 CE/EE, хотя обе версии достигли end-of-life и уже не поддерживаются.

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

Причина — неправильное ограничение пути и отсутствие проверки аутентификации в repository commits API. При определённых условиях неаутентифицированный пользователь мог читать произвольные файлы с сервера GitLab.

Предусловие для эксплуатации минимально: на экземпляре должен существовать хотя бы один публичный проект. После этого шага аутентификация не требуется. Среди файлов, которые может похитить атакующий, — CI/CD-переменные, runner-токены, SSH-ключи и то, что попало в логи. Это позволяет компрометировать CI/CD-конвейеры и потенциально получить доступ к другим системам, к которым имеет доступ GitLab.

Почему это сделали

Уязвимость обнаружил Mohamed Abdelaiz (S3ntago), и GitLab оперативно выпустил патч 11 сентября. Jake Knott из watchTowr сформулировал предусловие прямо: достаточно одного публичного проекта, после чего аутентификация не нужна. Parker Brisette отметил, что требования для эксплуатации минимальны.

Что это меняет на практике

Обновление закрывает саму возможность новых чтений, но не отзывает учётные данные, которые атакующий мог уже скопировать. Christopher Houser предупредил: патч останавливает новые чтения, но не отзывает deploy-токены, CI-переменные и SSH-ключи, уже скопированные атакующим. Поэтому после обновления нужно:

  • заменить deploy-токены, CI-переменные и SSH-ключи на новые, а старые отозвать — просто удалить или сменить пароль недостаточно, потому что атакующий уже держит у себя копию этих данных и она продолжит работать;
  • проверить, какие пакеты и образы вытягивали сборки, пока старые учётные данные оставались действительными;
  • ограничить доступ из интернета и заменить затронутые секреты вместе с патчингом.

Для выявления попыток эксплуатации защитникам рекомендуется искать в логах HTTP POST-запросы к URI вида /api/v4/projects/{id}/repository/commits/ с параметрами file.path. Именно POST с этим параметром считается признаком атаки: уязвимость вызвана неправильным ограничением пути и отсутствием проверки аутентификации в API коммитов репозитория, поэтому запрос на создание коммита с указанием пути к файлу позволяет неаутентифицированному пользователю прочитать произвольный файл на сервере.

Ограничения и открытые вопросы

Авторы прямо признают: патчинг — лишь часть истории. Установка исправления сама по себе не устраняет последствия эксплуатации, поскольку уже скопированные секреты остаются действительными. Полная реакция включает обновление, ротацию скомпрометированных учётных данных, проверку того, что успели вытянуть сборки, и ограничение интернет-доступа. Конкретных замеров или статистики по количеству реальных атак не приводится — есть только подтверждение, что пробы начались в течение нескольких часов после раскрытия и что уязвимость внесена в KEV-каталог CISA.

Источники

Похожее