СОФТ / ЖЕЛЕЗО / ЦИФРОВАЯ СРЕДА
O19.Мир ITЧитать в Telegram

Ruby выпустил исправления ошибок регулярных выражений, связанных с риском выполнения кода

Редакция O19
ИИ-иллюстрация: рубин рядом с сервером и щитом, перекрывающим поток кода
ИИ-иллюстрация · O19

Команда Ruby 23 октября выпустила версии 4.0.9, 3.4.12 и 3.3.13 с исправлениями ошибок в движке регулярных выражений Onigmo. По официальному сообщению проекта, GitLab установил, что эти ошибки могут использоваться для удалённого выполнения кода на его серверах. Обновления Ruby устраняют лежащие в основе проблем дефекты.

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

GitLab ранее исправил поставляемую им сборку Ruby и присвоил проблемам четыре идентификатора: CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264. За ними стоят ошибки двойного освобождения памяти и целочисленных переполнений. Поэтому наличие четырёх CVE не означает четыре отдельных дефекта в Ruby.

Полный набор исправлений включён во все три новых релиза. Для ветки 4.0 нужен именно выпуск 4.0.9: предыдущая версия 4.0.8 уже содержала часть изменений, но ещё не устраняла переполнение внутренних идентификаторов в шаблонах с большим числом повторений. Релиз 4.0.9 отдельно подтверждён опубликованным объявлением и доступными архивами исходного кода.

Команда рекомендует обновиться либо временно отказаться от компиляции регулярных выражений из недоверенных данных. Параметр Regexp.timeout не защищает от этих ошибок; ограничение длины шаблона также ненадёжно. Отдельные CVE для Ruby пока не запрошены: проект предлагает отслеживать исправления по идентификаторам GitLab.

Источники