Обход пути в API коммитов GitLab позволяет читать произвольные файлы и похищать учётные данные

GitLab

GitLab исправила несколько уязвимостей в самоуправляемых установках. Одна из них даёт злоумышленнику без учётной записи доступ к произвольным файлам на сервере. Другая позволяет аутентифицированному пользователю получить конфигурацию поисковой подсистемы и секреты. Третья может привести к выполнению произвольного кода. Исправления вышли 10 сентября 2026 года в версиях 19.3.2, 19.2.6 и 19.1.8 для Community Edition и Enterprise Edition. Администраторам таких установок рекомендуют обновиться немедленно.

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

Наибольшую оценку опасности по шкале CVSS получила уязвимость CVE-2026-85706, 10,0 из 10. Это обход пути в API коммитов репозитория, то есть в программном интерфейсе для обращения к данным о коммитах. Обход пути означает, что приложение принимает от пользователя имя файла, но не проверяет, остаётся ли запрос внутри разрешённого каталога. В GitLab к этому добавилось отсутствие проверки аутентификации. Злоумышленнику не нужна учётная запись и не нужно участие самого пользователя. Достаточно сетевого доступа к серверу. Через эту уязвимость можно прочитать файлы конфигурации, токены, закрытые ключи и другие чувствительные данные. Конкретный набор зависит от прав доступа к файлам и настроек развёртывания. Поскольку учётная запись не требуется, поиск уязвимых серверов не встречает препятствий. Уязвимость затрагивает GitLab Community Edition и Enterprise Edition начиная с версии 18.7.

Вторая значимая проблема получила номер CVE-2026-87719 и оценку 9,9. Она связана с небезопасной десериализацией в компоненте, который обрабатывает подписки GraphQL, языка запросов к программному интерфейсу. Десериализация это восстановление объектов из потока данных. При недостаточной проверке злоумышленник может подсунуть такие данные, что сервер создаст объекты, к которым пользователь не должен иметь доступа. Аутентифицированный пользователь с доступом к Duo Chat отправляет специально составленный аргумент подписки. Это позволяет обойти ограничения и получить конфигурацию Advanced Search вместе с учётными данными. Уязвимость затрагивает только Enterprise Edition начиная с версии 18.3.

Третья значимая уязвимость относится к переполнению буфера в обёртке преобразования Unicode при индексации Advanced Search, оценка 8,5. Переполнение буфера возникает, когда программа записывает данных больше, чем помещается в отведённую область памяти. Здесь атака требует аутентификации и высокой сложности. Пользователь с правами импорта загружает специально подготовленный экспорт проекта и запускает переполнение. Успешная эксплуатация даёт возможность выполнять произвольный код на сервере GitLab. Эта ошибка присутствует в Enterprise Edition с версии 12.3, поэтому парк уязвимых установок может быть широким.

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

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

Сведений о применении этих уязвимостей в реальных атаках GitLab не приводит. Подробности по каждой из них станут публичными через 90 дней после выпуска исправлений. Такова обычная практика компании. До этого момента администраторам стоит исходить из того, что техническая информация может оказаться в руках злоумышленников раньше.

Помимо трёх основных проблем, исправлены и другие. Среди них раскрытие защищённых переменных CI/CD, ошибки проверки прав, межсайтовый скриптинг, то есть выполнение чужого сценария в браузере жертвы, обход ограничений единого входа через SAML SSO, подмена содержимого в реестре пакетов, состояние гонки при создании конвейеров, отказ в обслуживании через GraphQL и обход требований подтверждения для развёртывания в защищённые среды. Часть из этих ошибок позволяет получить переменные, которые предназначены для более привилегированных ролей.

Обновление нужно ставить по ветке. Установки на версии 19.3 переходят на 19.3.2; на 19.2 переходят на 19.2.6; на 19.1 переходят на 19.1.8. Облачный сервис GitLab.com уже работает на исправленной версии. Клиентам GitLab Dedicated никаких действий предпринимать не требуется. Тем, кто остался на более старых ветках, следует перейти на поддерживаемый выпуск, как только это позволит рабочий процесс. Промедление здесь опасно, потому что исправления носят внеплановый характер и вышли раньше обычного графика.

После обновления службам безопасности имеет смысл проверить журналы. Интерес представляют обращения к программному интерфейсу, события импорта проектов, запросы подписок GraphQL и попытки доступа к переменным CI/CD. Это поможет понять, пытался ли кто-то воспользоваться уязвимостями до установки исправлений. Дополнительно стоит просмотреть список тех, кто имеет права на импорт проектов, и ограничить их там, где это возможно.

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

Ссылки

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