


23 октября команда Ruby сообщила об исправлениях ошибок движка регулярных выражений Onigmo, связанных с опубликованными GitLab уязвимостями. Все перечисленные исправления входят в Ruby 4.0.9, 3.4.12 и 3.3.13. На Mentoring.digital разбираем границы проблемы: важен источник самого шаблона, который приложение компилирует.
Ошибки затрагивают приложения, которые принимают регулярное выражение из недоверенного источника и передают его в Regexp.new, Regexp.compile, Regexp.union или интерполированный шаблон. Обычная проверка пользовательской строки по заранее заданному разработчиком выражению не является этим сценарием.
В объявлении перечислены повреждения памяти при компиляции. Поэтому Regexp.timeout и ограничение длины шаблона не считаются надёжной защитой: проблема возможна ещё до поиска совпадения, в том числе с коротким выражением. Если обновление пока невозможно, рекомендация Ruby состоит в отказе от компиляции недоверенных шаблонов.
GitLab выпустил исправления 21 октября. CVE-2026-110264 относится к критической ошибке компилятора регулярных выражений: при определённых условиях она допускает выполнение произвольного кода без авторизации. Исправленные выпуски: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 и 18.11.13.
Владельцам самостоятельно размещённых установок GitLab рекомендует обновление без промедления. Для GitLab.com исправление уже применено. При выборе пакета ориентируйтесь на используемую ветку и официальный путь обновления продукта, а не только на наличие нового Ruby в операционной системе.
Номера CVE в сообщении Ruby назначены GitLab. Команда Ruby отдельно отмечает, что на момент объявления ещё не запрашивала собственные идентификаторы. Это не следует описывать как новый набор CVE самого языка.
План обновления самостоятельной установки, проверку окружения и возвращение сервисов в работу можно разобрать с наставником по DevOps. Здесь важна проверка конкретного развёртывания: замена одной зависимости не подтверждает обновление всех работающих процессов.