Ruby on Rails закрывает 21 уязвимость версиями 8.0.5.2 и 8.1.4.1

Ruby on Rails

Команда Ruby on Rails выпустила два релиза с исправлениями безопасности. В сумме они устраняют 21 уязвимость в разных частях фреймворка. Часть из них опаснее прочих. Затронуты приложения, которые принимают файлы и работают с сессиями.

Что вошло в релизы 8.0.5.2 и 8.1.4.1

Уведомление опубликовано 4 ноября 2026 года. Оно вышло одновременно с самими релизами, поэтому администраторы могут перейти на них сразу. При этом серия 8.0 получает обновления безопасности последние дни. Поддержку серии 8.0 свернут 7 ноября 2026 года.

Самая опасная уязвимость затрагивает Active Storage, компонент для работы с загруженными файлами. Она связана с анализом изображений и позволяет читать и записывать произвольные файлы. Именно поэтому вендор помечает её как критическую. Рядом стоит уязвимость в обработке видео: предпросмотре, анализе и подготовке превью. Здесь возможны чтение файлов и удалённое выполнение кода.

В результате успешной эксплуатации атакующий получает доступ к файлам и коду приложения. Для организации это утечка данных и простой. При этом обе уязвимости относятся к модулям, которые подключают явно. Если Active Storage не используется, этот код не участвует в обработке запросов. Анализ картинок и видео запускается при каждой загрузке файла.

Обход параметров и подделка адреса

Кроме того, отдельный блок уязвимостей касается фильтрации параметров. Обход механизма Strong Parameters, который фильтрует поля формы, при переборе ключей снимает защиту. При этом подделка IP-адреса в Action Dispatch, компоненте разбора запросов, затрагивает только ветку 8.1. Через заголовок Forwarded атакующий может выдать себя за другой адрес. Опора на этот адрес в проверках доступа становится ненадёжной.

Также несколько уязвимостей приводят к межсайтовому скриптингу. Он возможен в хелперах Action View для текста, тегов и очистки разметки. Ещё один случай затрагивает сериализатор MessagePack в Active Support, но только в 8.1. При этом срабатывает она в браузере жертвы. Злоумышленнику нужно, чтобы человек открыл подготовленную страницу.

Кроме того, вендор закрыл несколько отказов в обслуживании. Они затрагивают безопасное разрешение констант, потоковую отдачу в Action Controller и обработку имён файлов в Active Storage. Отказ в обслуживании останавливает обработку запросов. После этого восстановление сервиса требует перезапуска.

Сессии, кеш и прямые загрузки

Ещё одна группа связана с сессиями. Также уничтоженная сессия может снова стать действующей через хранилище кеша в Action Dispatch. Режим прокси в Active Storage способен раскрыть cookie сессии. Сами cookie из Action Pack не получают атрибут SameSite. От него зависит, отправлять ли cookie при переходе между сайтами.

Из-за этого браузер отправляет их в более широком наборе сценариев. Утечка cookie даёт атакующему готовую сессию. Восстановление уничтоженной сессии продлевает доступ после выхода из системы. Ещё одна уязвимость позволяет отравить кеш через согласование содержимого. В результате пользователь может получить чужой ответ из кеша.

При этом внимания требуют загрузки напрямую в Google Cloud Storage. Вендор нашёл неподписанный Content-Type при включённом управлении кешированием. Кроме того, обойти ограничение на размер файла оказалось возможно. Обе уязвимости среднего уровня. В ту же группу входит повторная отправка подписи в Action Mailbox Mailgun.

Как закрыть уязвимости

Исправления вышли в версиях 8.0.5.2 и 8.1.4.1. При этом переход на них закрывает все перечисленные уязвимости. Если обновление сразу невозможно, вендор советует взять патчи по идентификаторам GHSA из бюллетеня 91802. Каждый идентификатор ведёт к отдельному исправлению. Обновление стоит проверить в тестовой среде.

Пока сведений об эксплуатации этих уязвимостей в реальных атаках вендор не приводит. Патчи при этом опубликованы, поэтому восстановление не требует ждать. Состав компонентов у каждого приложения свой. Active Storage, Action Mailbox и потоковая отдача включаются отдельно. Поэтому полный переход на новые версии закрывает весь набор, а точечные патчи - только нужные части.

Ссылки

Комментарии: 0