GitLab закрыла уязвимость CVSS 10: чтение файлов сервера через API коммитов

Коротко о главном
10 сентября 2026 года GitLab выпустила экстренные обновления, закрывающие CVE-2026-85706 — уязвимость обхода пути (path traversal) в API коммитов репозитория с максимальным баллом CVSS 10.0. Из-за некорректного ограничения пути и отсутствующей проверки аутентификации неаутентифицированный злоумышленник может одним HTTP-запросом прочитать произвольные файлы на self-hosted-сервере GitLab CE и EE. Достаточно, чтобы на инстансе существовал хотя бы один публичный проект. Исправление — в версиях 19.3.2, 19.2.6 и 19.1.8; обновляться нужно немедленно.
Для команд, которые держат исходный код и CI/CD в собственном GitLab, это прямая угроза цепочке поставки ПО: через уязвимость читаются логи и конфигурационные файлы, а значит — токены, секреты и учётные данные интеграций. Мы рекомендуем закрыть баг в один день и параллельно поднять вопрос информационной безопасности всего DevOps-контура, а не одного сервера.
Ситуацию обостряют два фактора. Уже 11 сентября 2026 года CISA внесла CVE-2026-85706 в каталог известных эксплуатируемых уязвимостей (KEV), а исследователи зафиксировали массовое сетевое сканирование инстансов. Если патч по каким-то причинам откладывается — как минимум ограничьте сетевой доступ к GitLab и заложите аудит кода и зависимостей в регламент реагирования.
Что именно произошло
GitLab — одна из самых распространённых self-hosted-платформ для хранения кода, ревью и CI/CD. Уязвимость находится в API коммитов репозитория: механизм, который должен удерживать запрос в границах разрешённой директории, обрабатывает путь неполно, а требуемая аутентификация в этом сценарии не применяется. В результате запрос «выходит» за пределы репозитория и адресует произвольные файлы файловой системы, доступные процессу GitLab.
Корень проблемы исследователи описывают как сочетание неправильного ограничения пути (improper path confinement) и отсутствующего контроля доступа. Для атаки не нужны ни учётная запись, ни особые привилегии, ни взаимодействие с пользователем — только сетевой доступ к инстансу и наличие на нём хотя бы одного публичного проекта, чтобы обратиться к соответствующему эндпоинту. Одного HTTP-запроса достаточно, чтобы получить содержимое целевого файла.
Насколько это серьёзно
CVSS 10.0 — это максимально возможный балл, и он здесь не преувеличение. Сетевой вектор, низкая сложность, отсутствие предусловий и участия пользователя означают, что эксплуатация тривиальна и автоматизируема в масштабе. По данным исследователей из watchTowr, активные попытки обращения к уязвимому эндпоинту начались около 06:00 UTC 11 сентября 2026 года — фактически на следующий день после выхода патча.
Опаснее всего не сам факт чтения файла, а то, что именно читается. Процессу GitLab доступны логи и конфигурационные файлы платформы, в которых регулярно оседают токены доступа, параметры интеграций и учётные данные подключённых систем. Получив их, злоумышленник переходит от «чтения файла» к компрометации CI/CD-пайплайнов, реестров артефактов и связанных облачных сервисов. Для организации это классический сценарий атаки на цепочку поставки, где одна дыра в инструменте разработки открывает доступ к продакшену.
В том же цикле обновлений GitLab закрыла и вторую серьёзную проблему — CVE-2026-87719 (CVSS 9.9), небезопасную десериализацию в GitLab EE, затрагивающую пользователей Duo Chat. Она требует отдельного внимания при планировании обновления, хотя первичный приоритет по эксплуатации сейчас — именно path traversal.
Кто под угрозой и что уже подтверждено
Уязвимы self-hosted-инсталляции GitLab Community Edition и Enterprise Edition следующих диапазонов версий: с 18.7 по 19.1.7 включительно, с 19.2.0 по 19.2.5 и с 19.3.0 по 19.3.1. Исправленные версии — 19.1.8, 19.2.6 и 19.3.2. Управляемый GitLab.com патчится вендором на своей стороне; ответственность за самостоятельно развёрнутые серверы лежит на их владельцах.
Хронология сжата до предела: 10 сентября 2026 года вышли исправленные релизы, 11 сентября CISA добавила CVE-2026-85706 в каталог KEV и установила для федеральных гражданских ведомств США срок устранения до 14 сентября 2026 года. Тогда же зафиксированы сетевые сканы. Внесение в KEV — это не формальность, а подтверждённый сигнал того, что уязвимость эксплуатируется в реальных атаках; ориентируйтесь на него как на официальный дедлайн и для себя.
Что это значит для команд разработки
Главный урок шире одного CVE: система хранения кода — это критический актив, а не «внутренний инструмент». GitLab, GitHub Enterprise, Bitbucket, реестры артефактов и раннеры CI аккумулируют секреты всей организации, поэтому одна уязвимость чтения файлов в них по последствиям сопоставима с компрометацией продакшена. Обращаться с этим слоем нужно как с внешним периметром: своевременные патчи, минимум сетевой экспозиции, короткоживущие секреты.
Отсюда практические выводы. Инструменты разработки не должны быть доступны из интернета без явной необходимости — ограничьте их VPN, allow-list по IP или reverse-proxy с аутентификацией. Секреты в CI/CD храните в специализированном менеджере с ротацией, а не в конфигах и переменных, которые оседают в логах. И держите инвентарь версий self-hosted-инфраструктуры, чтобы на выход подобного патча реагировать за часы, а не за недели.
Как действовать прямо сейчас
Обновите GitLab до 19.3.2, 19.2.6 или 19.1.8 (в зависимости от вашей ветки) на всех self-hosted-инстансах — это единственная полноценная мера, вендор не предлагает эквивалентного обходного решения.
Если немедленный патч невозможен, временно ограничьте сетевой доступ к серверу GitLab: закройте его от интернета, оставьте доступ только доверенным сетям. Это снижает риск, но не заменяет обновление.
Проверьте, не была ли инсталляция уязвима и доступна извне до патча. Если да — исходите из того, что доступные процессу GitLab секреты могли быть прочитаны, и выполните ротацию токенов, ключей и учётных данных интеграций.
Проанализируйте логи веб-сервера и приложения на аномальные обращения к API коммитов и попытки обхода пути. Отдельно запланируйте обновление, закрывающее CVE-2026-87719, если используете GitLab EE и Duo Chat.
Часто задаваемые вопросы
Какие версии GitLab уязвимы? Self-hosted CE и EE с 18.7 по 19.1.7, с 19.2.0 по 19.2.5 и с 19.3.0 по 19.3.1. Исправление — в 19.1.8, 19.2.6 и 19.3.2.
Нужна ли злоумышленнику учётная запись? Нет. Атака не требует аутентификации и привилегий — достаточно сетевого доступа к инстансу и наличия на нём хотя бы одного публичного проекта.
Что может прочитать атакующий? Произвольные файлы, доступные процессу GitLab, включая логи и конфигурации, где нередко хранятся токены, секреты и учётные данные интеграций.
Эксплуатируется ли уязвимость в реальных атаках? Да. CISA внесла CVE-2026-85706 в каталог KEV 11 сентября 2026 года, а исследователи зафиксировали сетевое сканирование уязвимых инстансов вскоре после выхода патча.
Затронут ли GitLab.com? Управляемый сервис патчится вендором на своей стороне. Приоритетное действие требуется владельцам самостоятельно развёрнутых серверов.
Источники
GitLab — Security Release: критические уязвимости в GitLab CE/EE, включая CVE-2026-85706 (первоисточник вендора), 10 сентября 2026 года.
CISA — Known Exploited Vulnerabilities Catalog: добавление CVE-2026-85706, срок устранения 14 сентября 2026 года.
The Hacker News — GitLab CVSS 10 File-Read Flaw Draws In-the-Wild Probes After Disclosure, 2026.
watchTowr — Rapid Reaction: GitLab Critical Path Traversal Vulnerability (CVE-2026-85706), 2026.
Защитите свой DevOps-контур и цепочку поставки ПО
Проведём аудит безопасности инфраструктуры разработки — GitLab, CI/CD, управление секретами и сетевой периметр — и поможем закрыть критические уязвимости раньше, чем их найдут сканеры.