Руководства по безопасности

GitLab CVE-2026-110264 (CVSS 10.0): как проверить и обновить самостоятельно развёрнутый GitLab

Критический патч GitLab от 21 октября 2026 закрывает CVE-2026-110264 (CVSS 10.0): неаутентифицированный пользователь может выполнить код. Обновитесь.

Опубликовано 2026-10-25 Обновлено 2026-10-25 Последняя проверка 2026-10-25 10 мин чтения
На этой странице

Для кого это: администраторы, которые запускают GitLab на собственных серверах или в облаке (самостоятельное развёртывание), и разработчики, которые создают приложения на Ruby. Эта страница основана на уведомлении GitLab о патч-выпуске, официальном объявлении Ruby, Национальной базе данных уязвимостей США (NVD) и открытых данных CISA. Здесь не описывается, как работают атаки.

続報待ち:この記事は公式発表に合わせて更新します

на 08:00 JST, 25 октября 2026 года

まだ分かっていないこと

  • Точные условия, при которых уязвимость можно вызвать (GitLab говорит только «при определённых условиях»)
  • Любые изменения статуса эксплуатации (на момент раскрытия сообщений нет)
  • Собственная оценка NVD (находится на анализе)

GitLab опубликовал патч-выпуск 21 октября, а команда Ruby выпустила исправленные версии 23 октября. Сообщений об эксплуатации нет, и уязвимости нет в каталоге KEV от CISA. GitLab сообщает, что подробности будут опубликованы через 90 дней после выпуска. Эта страница будет обновлена, если ситуация изменится.

Что сделать сегодня (самостоятельно развёрнутый GitLab)

1

Проверьте версию

В установке из пакетов Linux (Omnibus) выполните sudo gitlab-rake gitlab:env:info на узле, где работает GitLab Rails; версия отображается в разделе «GitLab information». Её также можно увидеть в разделе Admin при входе под администратором. В конфигурациях с несколькими узлами проверьте каждый узел.

2

Перейдите на исправленный выпуск в той же ветке

Если у вас 19.4.x, перейдите на 19.4.3; если 19.3.x, перейдите на 19.3.6 и так далее. По мнению этого сайта, обновление патч-версии внутри одной минорной ветки обычно не требует промежуточных остановок (чтобы убедиться, проверьте инструментом GitLab). GitLab сообщает, что на однонодовых экземплярах следует ожидать простоя, так как GitLab не запускается, пока не завершатся миграции. Многонодовые экземпляры могут использовать процедуру обновления без простоя.

3

Со старых версий сначала проверьте промежуточные остановки

GitLab определяет обязательные промежуточные версии, которые нельзя пропускать. По состоянию на октябрь 2026 года в список входят 18.2, 18.5, 18.8 и 18.11 для GitLab 18, а также 19.2, 19.5, 19.8 и 19.11 для GitLab 19 (из остановок GitLab 19 уже выпущены 19.2 и 19.5). Введите текущую и целевую версии в инструмент GitLab Upgrade Path, чтобы получить список версий, через которые нужно пройти. GitLab указывает, что эти версии нужно установить до более новых, и дождаться завершения фоновых миграций на каждой остановке.

4

Если сразу обновиться не можете, ограничьте доступ

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

5

Поищите следы

GitLab опубликовал два набора обнаружения угроз для клиентов с самостоятельным развёртыванием (раздел «Detecting CVE-2026-110264 Exploitation Attempts» в уведомлении). Если у вас есть мониторинг логов, загрузите в него эти правила обнаружения. Также проверьте незнакомые процессы, файлы, учётные записи администраторов и исходящие соединения. См. как проверить, был ли скомпрометирован ваш сервер.

Затронуты ли вы? Краткая таблица

Что вы используетеCVE-2026-110264 (критическая)Уязвимости высокой степени серьёзности и другие в том же выпускеЦель
19.5.x до 19.5.1ЗатронутаЗатронуты19.5.1
19.4.x до 19.4.3ЗатронутаЗатронуты19.4.3
19.3.x до 19.3.6ЗатронутаЗатронуты19.3.6
19.0.x — 19.2.xЗатронута (исправлена в 19.0.10, 19.1.9, 19.2.9)Исправлены только в 19.3.6 и новее19.3.6 или новее
18.11.x до 18.11.13Затронута (исправлена в 18.11.13)Исправлены только в 19.3.6 и новее19.3.6 или новее
18.10 и старше (от 7.0)ЗатронутаЗависит от уязвимостиНовая версия через промежуточные остановки
GitLab.comИсправленаИсправленыДействий не требуется
GitLab DedicatedИсправлена начиная с 19.3.5-internal0, 19.4.2-internal0То жеДействий не требуется, по данным GitLab

Диапазон затронутых версий отличается для других уязвимостей (например, CVE-2026-15723 начинается с 10.1, а CVE-2026-112212 — с 18.3). Точные диапазоны смотрите в таблице в уведомлении GitLab.

Текущая версия

До исправления критическая уязвимость остаётся

От 18.11.13 до 19.2.9

Критическая исправлена, уязвимости высокой степени серьёзности остаются

19.3.6 / 19.4.3 / 19.5.1

Все исправления этого выпуска

Исправления от 18.11 до 19.2 — временная остановка, которая исправляет только критическую уязвимость. Исправления высокой степени серьёзности появляются только начиная с 19.3.6.

Что было раскрыто (по уведомлению GitLab)

Критический патч-выпуск GitLab (21 октября 2026 года)
CVE
CVE-2026-110264 (CWE-190: целочисленное переполнение)
Серьёзность
Критическая, CVSS v3.1 10.0 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H, оценка GitLab)
Проблема
При определённых условиях целочисленное переполнение при компиляции специально сформированного регулярного выражения может позволить неаутентифицированному пользователю выполнить произвольный код на сервере GitLab
Затронуты
GitLab CE/EE начиная с 7.0, до 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 и 19.5.1
Уже исправлено
GitLab.com; GitLab Dedicated начиная с 19.3.5-internal0 и 19.4.2-internal0
Сообщил
Внешний исследователь через программу bug bounty GitLab на HackerOne
Эксплуатация
В уведомлении не указано; на 25 октября уязвимости нет в каталоге KEV от CISA
10.0
CVSS для CVE-2026-110264 (оценка GitLab)
Без входа
Требуемые привилегии (PR:N)
7 веток
Ветки выпуска с исправлением (от 18.11 до 19.5)
12
CVE, исправленных в том же выпуске

В том же выпуске исправлены ещё 11 уязвимостей, две из них — высокой степени серьёзности. CVE-2026-15723 (CVSS 8.2) может позволить аутентифицированному пользователю захватить существующую учётную запись на базе LDAP, если включены одновременно OmniAuth SAML и автоматическое связывание с LDAP. CVE-2026-112212 (CVSS 7.5) может позволить подменить кэшированный документ обнаружения OAuth/OIDC, так что определённые потоки направляются на внешний сервер. Остальные — пять со средней и четыре с низкой степенью серьёзности.

Оценка SSVC от CISA от 21 октября указывает эксплуатацию как «none», возможность автоматизации как «yes», а технические последствия как «total». Завершить обновление, пока об эксплуатации не сообщалось, — самый дешёвый способ пройти через это (мнение этого сайта).

Корень проблемы — в движке регулярных выражений Ruby: для разработчиков на Ruby

23 октября команда Ruby выпустила Ruby 4.0.9, 3.4.12 и 3.3.13, которые исправляют ошибки в движке регулярных выражений Ruby (Onigmo). Они устраняют три ошибки, связанные с четырьмя CVE, назначенными GitLab (CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264). Три CVE, кроме CVE-2026-110264, были исправлены в GitLab 19.4.1 и 19.4.2.

Regexp.timeout не помогает

Согласно объявлению Ruby, ошибки проявляются только тогда, когда приложение компилирует regexp из строки, которую контролирует злоумышленник (Regexp.new, Regexp.union, Regexp.compile или интерполяция вида /#{input}/). Приложения, использующие только регулярные выражения, написанные разработчиком, не затронуты. Regexp.timeout не защищает от этих ошибок, а ограничение длины шаблона также ненадёжно.

Ruby 3.3 находится в режиме поддержки только безопасности, но 3.3.13 включает эти исправления как исключение, потому что GitLab назначил CVE для проблем, которые на них опираются. Ruby 3.2 достиг конца поддержки 1 апреля 2026 года и исправленного выпуска не имеет.

Пакеты GitLab для Linux и облачные образы содержат собственные патчи GitLab для регулярных выражений, поэтому администраторам GitLab нужно обновлять сам GitLab, а не Ruby на сервере. Если вы устанавливали GitLab из исходного кода, этот сайт рекомендует также обновить этот Ruby до исправленной версии.

Рискованные практики

  • Передача ввода из строки поиска или фильтра напрямую в Regexp.new
  • Выполнение шаблонов, которые пользователи регистрируют как серверные регулярные выражения
  • Предположение, что Regexp.timeout или ограничение длины делают код безопасным
  • Использование Ruby 3.2 или старше после окончания поддержки

Более безопасные практики

  • Для простого текстового поиска используйте Regexp.escape, чтобы ввод сопоставлялся буквально
  • Спросите себя, действительно ли нужно позволять пользователям писать регулярные выражения
  • Если нужно, запускайте их другим движком регулярных выражений или в изолированном процессе (мнение этого сайта)
  • Обновите Ruby до 4.0.9, 3.4.12 или 3.3.13 или новее

Нельзя понять по одному только вашему коду, формирует ли какая-то зависимость (gem или фреймворк) регулярные выражения из пользовательского ввода, поэтому обновление Ruby — самое надёжное решение. Для отслеживания зависимостей см. как отслеживать CVE в зависимостях с помощью osv-scanner.

Что часто забывают самостоятельно развёрнутые Git-серверы

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

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

Что пока неизвестно

ПунктСтатус
Точные условия для уязвимостиНе указаны («при определённых условиях»; подробности будут опубликованы через 90 дней после выпуска)
ЭксплуатацияНе указана (нет в KEV от CISA на 25 октября)
Публичный эксплойтНе указан
Оценка NVDНа анализе (оценка GitLab — 10.0)
CVE для самих ошибок RubyКоманда Ruby их пока не запрашивала (могут быть пересмотрены)

Источники

  • GitLab, «GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13» (21 октября 2026) — docs.gitlab.com
  • Ruby, «Regexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264» (23 октября 2026) — ruby-lang.org
  • Ruby, «Ruby Maintenance Branches» — ruby-lang.org
  • GitLab, «Upgrade paths» — docs.gitlab.com
  • GitLab, «Maintenance Rake tasks» (gitlab:env:info) — docs.gitlab.com
  • NIST NVD, «CVE-2026-110264» — nvd.nist.gov
  • CISA, «Known Exploited Vulnerabilities Catalog» — cisa.gov

Журнал изменений

2026-10-25: первая версия, основанная на уведомлении GitLab о патч-выпуске, официальном объявлении Ruby, NVD и каталоге KEV от CISA (версия от 23 октября 2026 года).

Читайте дальше

Последние срочные сообщения

FAQ

QЧто произошло?
A

21 октября 2026 года GitLab выпустил критические патч-версии 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 и 18.11.13 для CE и EE. Самая серьёзная уязвимость, CVE-2026-110264 (CVSS 10.0), представляет собой целочисленное переполнение при компиляции специально сформированного регулярного выражения, которое при определённых условиях может позволить неаутентифицированному пользователю выполнить произвольный код на сервере GitLab.

QЗатронут ли мой GitLab?
A

Самостоятельно развёрнутый экземпляр GitLab CE/EE затронут, если он работает на версии 7.0 или новее и старше исправленной версии своей ветки: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 или 18.11.13. GitLab.com уже исправлен. Для GitLab Dedicated исправления уже есть у арендаторов на версиях 19.3.5-internal0, 19.4.2-internal0 или новее.

QДостаточно ли обновиться до 18.11.13 или 19.2.9?
A

Это исправляет CVE-2026-110264, но, согласно уведомлению GitLab, уязвимости высокой степени серьёзности в том же выпуске (CVE-2026-15723, CVE-2026-112212) и остальные исправлены только в 19.3.6, 19.4.3 и 19.5.1. Считайте версии от 18.11.13 до 19.2.9 временной остановкой для критической уязвимости и планируйте переход на 19.3.6 или новее (мнение этого сайта).

QЕё уже эксплуатируют?
A

В уведомлении GitLab не сказано, что её эксплуатировали, и по состоянию на 25 октября 2026 года уязвимости нет в каталоге известных эксплуатируемых уязвимостей (KEV) CISA. GitLab опубликовал два набора обнаружения угроз, которые помогут клиентам с самостоятельным развёртыванием выявлять попытки эксплуатации.

QЯ разрабатываю приложения на Ruby. Меня это касается?
A

Возможно. 23 октября Ruby выпустил версии 4.0.9, 3.4.12 и 3.3.13, чтобы исправить ошибки в движке регулярных выражений (Onigmo). Затронуты только приложения, которые компилируют regexp из строки, контролируемой злоумышленником (Regexp.new, Regexp.union, /#{input}/ и так далее); приложения, использующие только регулярные выражения, написанные разработчиком, не затронуты. Ruby указывает, что Regexp.timeout не защищает от этих ошибок, а ограничение длины шаблона также ненадёжно.

QМы всё ещё используем Ruby 3.2 или более старую версию.
A

Поддержка Ruby 3.2 завершилась 1 апреля 2026 года, а единственные исправленные версии — 4.0.9, 3.4.12 и 3.3.13. Перейдите на 3.3.13 или новее. Пока вы не можете этого сделать, команда Ruby советует не компилировать regexp из недоверенного ввода.