VMTech
Обсудить проект →

Ruby исправил ошибки regex, связанные с критическими RCE в GitLab

Ruby исправил ошибки regex, связанные с критическими RCE в GitLab

Ruby выпустил версии 4.0.9, 3.4.12 и 3.3.13, устраняющие три ошибки в движке регулярных выражений Onigmo. Эти дефекты связаны с четырьмя критическими уязвимостями удалённого выполнения кода в GitLab: две из них получили максимальную оценку CVSS 10,0 и не требуют авторизации.

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

Какие Ruby-приложения подвержены риску

В Ruby уточнили, что затронуты не все программы на языке. Условие риска — приложение должно собирать регулярное выражение из строки, которую контролирует атакующий. Статические шаблоны, написанные разработчиками и не использующие внешний ввод, этой проблеме не подвержены.

Опасный сценарий возможен при вызовах Regexp.new, Regexp.union или Regexp.compile, а также при интерполяции ввода в выражение, например /#{input}/. Ограничение размера шаблона не считается надёжной мерой: ошибку могут вызывать и короткие строки. Настройка Regexp.timeout также не устраняет эти дефекты.

Какие версии нужно установить

Для ветки Ruby 4.0 следует установить 4.0.9, для 3.4 — 3.4.12, для 3.3 — 3.3.13. Выпущенная ранее версия 4.0.8 не содержит исправления CVE-2026-110264, поэтому пользователям Ruby 4.0 необходимо обновиться именно до 4.0.9.

Ruby 3.2 и более ранние ветки обновлений не получат. Поддержка Ruby 3.2 завершилась 1 апреля 2026 года, а финальным релизом стала 3.2.11. Временная рекомендация для тех, кто не может обновиться, — прекратить компиляцию регулярных выражений из недоверенного ввода.

Связь с уязвимостями GitLab

GitLab компилирует пользовательские регулярные выражения, в том числе шаблоны в конфигурациях CI/CD. Компания с 23 сентября по 21 октября выпустила исправления для четырёх CVE, поставляя обновлённую Ruby в составе своего продукта. Все уязвимости через программу bug bounty сообщил исследователь под псевдонимом joaxcar.

Первые две проблемы требовали учётной записи и были оценены в 9,9 балла. CVE-2026-97229, раскрытая 12 октября, и CVE-2026-110264 от 21 октября не требуют входа в систему и оценены в 10,0. Последняя затрагивает все версии GitLab, начиная с 7.0.

Для самостоятельно развёрнутых инсталляций GitLab необходим релиз с исправлением 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.com уже использует исправленную версию; GitLab также опубликовал правила обнаружения попыток эксплуатации для администраторов.

Что проверить командам

Ruby пока не запросила собственные CVE для этих исправлений и предлагает отслеживать проблему по четырём идентификаторам GitLab. Это может осложнить инвентаризацию сканерами, поскольку записи GitLab называют затронутым продуктом именно GitLab, а не Ruby.

Практический приоритет — обновить поддерживаемые ветки Ruby и GitLab, затем найти в коде все места, где регулярные выражения строятся из внешнего текста. Там, где обновление пока невозможно, такой ввод следует исключить из компиляции шаблонов: это прямо соответствует рекомендации Ruby и снижает риск повреждения памяти.

#rubysecurity#gitlabsecurity#remotecodeexecution#vulnerabilitymanagement
Открытая аналитика
На сайте 0 просмотров
мин чтения 3 23.10.2026
Instagram

Ruby исправил ошибки regex, связанные с критическими RCE в GitLab

Открыть публикацию в Instagram ↗