Rack — это модульный интерфейс веб-сервера Ruby. Начиная с версий 3.0.0.beta1 до 3.1.21 и от 3.2.0 до 3.2.6, Rack::Multipart::Parser#handle_mime_head анализирует составные параметры в кавычках, такие как Content-Disposition: form-data; name="..." с использованием повторяющихся поисков по индексу String# в сочетании с фрагментом String#! удаление префикса. Для значений в кавычках с большим количеством escape-символов это приводит к сверхлинейной обработке.
Злоумышленник, не прошедший проверку подлинности, может отправить созданный запрос multipart/form-data, содержащий множество частей со значениями параметров с длинными экранированными обратными косыми чертами, чтобы вызвать чрезмерную загрузку ЦП во время многочастного анализа. Это приводит к отказу в обслуживании в приложениях Rack, которые принимают данные составной формы. Эта проблема исправлена в версиях 3.1.21 и 3.2.6.
Показать оригинальное описание (EN)
Rack is a modular Ruby web server interface. From versions 3.0.0.beta1 to before 3.1.21, and 3.2.0 to before 3.2.6, Rack::Multipart::Parser#handle_mime_head parses quoted multipart parameters such as Content-Disposition: form-data; name="..." using repeated String#index searches combined with String#slice! prefix deletion. For escape-heavy quoted values, this causes super-linear processing. An unauthenticated attacker can send a crafted multipart/form-data request containing many parts with long backslash-escaped parameter values to trigger excessive CPU usage during multipart parsing. This results in a denial of service condition in Rack applications that accept multipart form data. This issue has been patched in versions 3.1.21 and 3.2.6.
Характеристики атаки
Последствия
Строка CVSS v3.1