Rack multipart parser DoS: обновления исправляют уязвимость в версиях 2.2.25, 3.1.23 и 3.2.8
30 октября 2026 года Rack выпустила обновления 2.2.25, 3.1.23 и 3.2.8, закрывающие уязвимость GHSA-5v64-555j-wjxm в multipart parser.
Rack выпустила обновления 2.2.25, 3.1.23 и 3.2.8 примерно 30 октября 2026 года. Патчи устраняют уязвимость типа «отказ в обслуживании» в компоненте multipart parser, известную как GHSA-5v64-555j-wjxm.
Rack multipart parser DoS: технические детали уязвимости
Проблема затрагивает класс Rack::Multipart::Parser. По умолчанию парсер читает тело запроса блоками по 1 МиБ и хранит данные в буфере сканирования. Байты удаляются из буфера только при завершении части внутри тела. Злоумышленник может сформировать multipart-запрос так, чтобы границы чанков совпадали с заголовками частей. В этом случае компактизация не происходит, и буфер растёт до размера всего запроса.
Уязвимость не зависит от существующих ограничений на заголовки частей, не-файловые поля или преамбулу. Атака не требует аутентификации и работает с корректно сформированными multipart-телами. Оценка CVSS составляет 7,5 (High). Приложение на базе Rack, включая Rails, обрабатывающее multipart/form-data в конфигурации по умолчанию, подвержено риску исчерпания памяти worker-процессов.
Разработчики Rack подтвердили, что исправления гарантируют удаление байтов до чтения следующего блока данных. В дополнение введён новый параметр окружения RACK_MULTIPART_PARSER_BYTESIZE_LIMIT, позволяющий ограничить потребление памяти.
Контекст и рекомендации по обновлению
Это не первое исправление multipart-уязвимостей в Rack за последние два года. В 2025–2026 годах уже выходили патчи, ограничивающие буферизацию преамбулы, заголовков частей и не-файловых полей. Одновременно с основным исправлением закрыта связанная проблема низкой степени риска GHSA-p8x9-v4hv-2w4g (CVSS 3,7).

Пользователям рекомендуется обновиться до версий 2.2.25, 3.1.23 или 3.2.8 как можно быстрее. До обновления можно ограничить размер тела запроса на уровне прокси-сервера. По состоянию на 2 ноября 2026 года публичных случаев эксплуатации уязвимости не зафиксировано. Разработчикам Rails LTS и других фреймворков на базе Rack следует отслеживать появление связанных обновлений в экосистеме.
Частые вопросы
Какие версии Rack исправлены?
Обновления 2.2.25, 3.1.23 и 3.2.8 закрывают уязвимость. Все предыдущие версии уязвимы.
Как проявляется уязвимость Rack multipart parser DoS?
Буфер парсера не очищается при определённом расположении границ чанков, что приводит к росту потребления памяти до размера запроса.
Нужно ли обновлять Rails после патча Rack?
Rails зависит от Rack, поэтому после обновления Rack следует проверить совместимость и при необходимости обновить Rails до версии, использующей исправленный Rack.
Существуют ли временные меры защиты?
Можно ограничить размер тела запроса на уровне reverse-прокси или использовать переменную окружения RACK_MULTIPART_PARSER_BYTESIZE_LIMIT.
Комментарии
Комментариев пока нет. Будьте первым!