GitLab снова доказал, что дырявый API опаснее иного вируса

GitLab снова доказал, что дырявый API опаснее иного вируса

изображение: grok

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

GitLab стоит более чем у половины компаний из списка Fortune 100, а зарегистрированных пользователей платформы по миру насчитывается свыше 30 млн. Для такой аудитории дыра в одном API это не локальная поломка отдельного сервера, а лакомый кусок для массовых атак сразу на тысячи целей одновременно.

Баг засел в API коммитов репозиториев. Сервер не проверяет аутентификацию запроса и криво ограничивает доступ к путям файлов, поэтому получить содержимое произвольного файла может кто угодно без регистрации, пароля и прочих формальностей:

  • уязвимость сидит в API коммитов репозиториев GitLab;
  • проверка аутентификации запроса отсутствует как класс;
  • доступ к путям файлов ограничен некорректно;
  • для чтения любого файла хватает одного HTTP-запроса без учётной записи;

Патчи для Community Edition и Enterprise Edition компания выкатила в четверг, закрыв брешь в версиях 19.3.2, 19.2.6 и 19.1. Разработчики попросили админов ставить обновление без раскачки, но сама GitLab на момент релиза патча ещё не помечала CVE-2026-85706 как используемую в реальных атаках.

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

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

Администраторам стоит поднять журналы серверов и присмотреться к POST-запросам определённого вида. Записи с параметром file.path в адресах репозиториев коммитов способны выдавать попытку эксплуатации CVE-2026-85706, а не обычную рутинную работу разработчиков:

  • проверить журналы на POST-запросы к адресам вида /api/v4/projects/{id}/repository/commits/;
  • обратить внимание на параметр file.path в теле запроса;
  • сверить версию GitLab с исправленными 19.3.2, 19.2.6 и 19.1;
  • обновить сервер при малейшем сомнении в его защищённости;

Российские компании тоже держат self-hosted инстансы GitLab на своих серверах, и обновлять их приходится собственными силами без быстрой поддержки вендора. Для таких команд разрыв между выходом патча и его установкой способен растянуться на недели, а это ровно то время, за которое злоумышленники успевают довести разведку до боевой атаки.

В тот же день CISA добавила CVE-2026-85706 в каталог Known Exploited Vulnerabilities, куда попадают проблемы с подтверждённой эксплуатацией. Федеральным ведомствам США по распоряжению BOD 26-04 дали три дня на устранение, но агентство отдельно попросило остальные организации не откладывать обновление в долгий ящик.

Стоит обратить внимание что CISA прямо называет такие ошибки удобной точкой входа для атакующих и советует расставлять приоритеты по каталогу KEV, а не по личным ощущениям об опасности той или иной дыры.

У GitLab уже есть похожий опыт. В январе компания закрывала критическую дыру, позволявшую обойти двухфакторную аутентификацию, если атакующий знал только идентификатор учётной записи цели. С ноября 2021 года агентство CISA добавило в свой каталог уже четыре уязвимости платформы, и нынешняя стала очередной в этом списке:

  • CVE-2021-22175 и CVE-2021-39935 добавлены в каталог KEV в феврале 2026 года;
  • обход двухфакторной аутентификации закрыт в январе того же года;
  • новая CVE-2026-85706 присоединилась к списку спустя месяцы после предыдущих записей;
  • каждая из проблем требовала минимум действий со стороны атакующего для успеха;

Российским разработчикам и security-командам официальных уведомлений от западных регуляторов ждать не приходится, поэтому сверять версии GitLab с патч-нотами приходится по собственной инициативе и без напоминаний сверху. Ситуация типичная для популярных DevSecOps-платформ, патч уже существует, но между его публикацией и установкой у админов всегда остаётся окно, в которое атакующие успевают юркнуть быстрее защитников:

  • держать GitLab обновлённым до последней доступной сборки;
  • закрывать админ-панель от прямого доступа из интернета;
  • активировать многофакторную аутентификацию для всех аккаунтов разработчиков;
  • подписаться на бюллетени вендора и каталог CISA KEV, чтобы не пропустить следующую проблему;

В случае с CVE-2026-85706 это окно уже прощупывают. Сервер GitLab без обновления сейчас напоминает дверь с новой табличкой про ремонт, но без самого ремонта.

Эксперты CISOCLUB обратили внимание на то, что окно между релизом патча и массовой эксплуатацией у GitLab регулярно сжимается до одного-двух дней, и нынешний случай подтвердил эту закономерность. Компаниям стоит воспринимать каталог CISA KEV как минимальный чек-лист, а не как исчерпывающий список угроз.

Специалисты уточнили, что закрытые от интернета админ-панели и МФА снижают ущерб даже, если патч по каким-то причинам не успели поставить вовремя. По их словам, чтение произвольных файлов без авторизации входит в число самых опасных классов уязвимостей, потому что позволяет вытащить секреты без единого шага внутрь инфраструктуры компании. Подобные баги в GitLab и других крупных DevOps-платформах будут возникать снова, поэтому автоматизированный мониторинг патчей должен стать частью обычного рабочего процесса, а не разовой акцией после очередной новости.

Ранее сообщалось, что в российском сегменте интернета насчитывается более 9,3 тыс. публичных GitLab-сервисов, часть из которых может быть подвержена удалённой атаке без учётной записи. В GitLab Community Edition (CE) и Enterprise Edition (EE) выявили критическую уязвимость CVE-2026-19478, связанную с обработкой директив GraphQL. Она позволяет злоумышленнику без аутентификации удалённо изменять или удалять публичные проекты и пользовательские данные, при этом наличие аккаунта GitLab и взаимодействие с пользователем для атаки не требуются. Уязвимости присвоили оценку 9,4 из 10 по шкале CVSS.

Артем
Автор: Артем
Представитель редакции CISOCLUB. Пишу новости, дайджесты, добавляю мероприятия и отчеты.
Комментарии: