Для кого это: администраторы, которые запускают GitLab на собственных серверах или в облаке (самостоятельное развёртывание), и разработчики, которые создают приложения на Ruby. Эта страница основана на уведомлении GitLab о патч-выпуске, официальном объявлении Ruby, Национальной базе данных уязвимостей США (NVD) и открытых данных CISA. Здесь не описывается, как работают атаки.
続報待ち:この記事は公式発表に合わせて更新します
на 08:00 JST, 25 октября 2026 годаまだ分かっていないこと
- Точные условия, при которых уязвимость можно вызвать (GitLab говорит только «при определённых условиях»)
- Любые изменения статуса эксплуатации (на момент раскрытия сообщений нет)
- Собственная оценка NVD (находится на анализе)
GitLab опубликовал патч-выпуск 21 октября, а команда Ruby выпустила исправленные версии 23 октября. Сообщений об эксплуатации нет, и уязвимости нет в каталоге KEV от CISA. GitLab сообщает, что подробности будут опубликованы через 90 дней после выпуска. Эта страница будет обновлена, если ситуация изменится.
Что сделать сегодня (самостоятельно развёрнутый GitLab)
Проверьте версию
В установке из пакетов Linux (Omnibus) выполните sudo gitlab-rake gitlab:env:info на узле, где работает GitLab Rails; версия отображается в разделе «GitLab information». Её также можно увидеть в разделе Admin при входе под администратором. В конфигурациях с несколькими узлами проверьте каждый узел.
Перейдите на исправленный выпуск в той же ветке
Если у вас 19.4.x, перейдите на 19.4.3; если 19.3.x, перейдите на 19.3.6 и так далее. По мнению этого сайта, обновление патч-версии внутри одной минорной ветки обычно не требует промежуточных остановок (чтобы убедиться, проверьте инструментом GitLab). GitLab сообщает, что на однонодовых экземплярах следует ожидать простоя, так как GitLab не запускается, пока не завершатся миграции. Многонодовые экземпляры могут использовать процедуру обновления без простоя.
Со старых версий сначала проверьте промежуточные остановки
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 указывает, что эти версии нужно установить до более новых, и дождаться завершения фоновых миграций на каждой остановке.
Если сразу обновиться не можете, ограничьте доступ
Уведомление GitLab не содержит обходного пути, кроме обновления. Пока вы не обновитесь, этот сайт рекомендует закрыть GitLab от внешней сети с помощью файрвола или VPN и отключить новую регистрацию. Ни то, ни другое не закрывает уязвимость, поэтому продолжайте обновление.
Поищите следы
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
Все исправления этого выпуска
Что было раскрыто (по уведомлению GitLab)
- 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
В том же выпуске исправлены ещё 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 года).
Читайте дальше
- Компромиссы самостоятельного хостинга: Самостоятельный Git или GitHub: что безопаснее
- Определение приоритетов: Как решить, какие CVE исправлять в первую очередь (CVSS, EPSS, KEV)
- Проверка на компрометацию: Как проверить, был ли скомпрометирован ваш сервер
- Другое исправление среды выполнения на той же неделе: Уязвимости PHP CVE-2026-109618 и CVE-2026-109619
- Термины: Что такое RCE (удалённое выполнение кода) / Что такое CVSS