nvd,anchore_overrides
Rack
Уязвимости
39
Эксплуатируемые
0
Критический
1
Высокий
18
Топ продуктов
Топ уязвимостей
CVE-2026-39324Rack::Сессия - это реализация управления сеансом для Rack. От 2.0.0 до 2.1.2, рейка::Сессия::Куки неправильно обрабатывает сбои расшифровки при настройке с секретами:. Если расшифровка файлов cookie не работает, реализация возвращается к декодеру по умолчанию вместо отказа от файла cookie. Это позволяет неаутентифицированному злоумышленнику предоставить созданный сеансовый файл cookie, который принимается в качестве действительных данных сеанса без знания какого-либо сконфигурированного секрета. Поскольку этот механизм используется для загрузки состояния сеанса, злоумышленник может манипулировать содержимым сеанса и потенциально получить несанкционированный доступ. Эта уязвимость исправлена в пункте 2.1.2.
CVE-2026-34830Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21 и 3.2.6 Rack::Sendfile#map_accel_path интерполирует значение заголовка запроса X-Accel-Mapping непосредственно в обычное выражение при переписыве файловых путей для X-Accel-Redirect. Поскольку значение заголовка не избегается, злоумышленник, который может поставлять X-Accel-Mapping на бэкэнд, может вводить метахарактеры regex и управлять сгенерированным заголовком ответа X-Accel-Redirect. При развертываниях с использованием Rack::Sendfile с x-accel-redirect это может позволить злоумышленнику заставлять nginx обслуживать непреднамеренные файлы из настроенных внутренних локаций. Эта проблема была исправлена в версиях 2.2.23, 3.1.21, и 3.2.6.
CVE-2026-34829Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21 и 3.2.6, Rack::Multipart::Parser заворачивает тело запроса только в BoundedIO, когда присутствует CONTENT_LENGTH. Когда запрос на многочастные/формальные данные отправляется без заголовка Content-Dength, например, с кодированием передачи с частями HTTP, многочастный разбор продолжается до конца потока без общего ограничения по размеру. Для файловых частей загруженный корпус записывается непосредственно во временный файл на диске, а не ограничивается буферизованным лимитом загрузки в памяти. Таким образом, неаутентированный злоумышленник может транслировать произвольно большой многочастный файл, загружающий и потребляющий неограниченное дисковое пространство. Это приводит к отказу в обслуживании для приложений Rack, которые принимают многочастные формальные данные. Эта проблема была исправлена в версиях 2.2.23, 3.1.21, и 3.2.6.
CVE-2026-34827Rack - это модульный интерфейс веб-сервера Ruby. От версий 3.0.0.beta1 до 3.1.21, и 3.2.0 до 3.2.6, Rack::Multipart:::Maltipart::Parser#handle_mime_head парсы цитировали параметры из нескольких частей, такие как Content-Disposition: form-data; name="...", используя повторные поиски String#index в сочетании с допуском префикса String#slic. Для потребляющих потребляющих цитируемых значений это вызывает сверхлинейную обработку. Неаутентифицированный злоумышленник может отправить созданный запрос на многочастные/формальные данные, содержащий множество деталей с длинными значениями параметров, убегающими от обратной косой черты, чтобы вызвать чрезмерное использование процессора во время многочастного парсинга. Это приводит к отказу в обслуживании в приложениях Rack, которые принимают многочастные формальные данные. Эта проблема была исправлена в версиях 3.1.21 и 3.2.6.
CVE-2026-34826Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21, и 3.2.6, Rack::Utils.get_byte_ranges анализирует заголовок диапазона HTTP без ограничения количества отдельных диапазонов байтов. Хотя существующее исправление для CVE-2024-261441 отклоняет диапазоны, общее покрытие которых превышает размер файла, оно не ограничивает количество диапазонов. Нападающий может предоставить множество небольших перекрывающихся диапазонов, таких как 0-0,0-0-0-0,0-0, ... чтобы вызвать непропорциональный процессор, память, ввод/вывод и потребление пропускной способности на запрос. Это приводит к отказу в обслуживании в способах обслуживания Rack, которые обрабатывают ответы диапазона нескольких частей шкала. Эта проблема была исправлена в версиях 2.2.23, 3.1.21, и 3.2.6.
CVE-2026-34785Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21 и 3.2.6 Rack::Static определяет, должен ли запрос подаваться в качестве статического файла с помощью простой проверки префикса строки. При настройке с префиксами URL, такими как "/css", он соответствует любому пути запроса, который начинается с этой строки, включая несвязанные пути, такие как "/css-config.env" или "/css-backup.sql". В результате файлы под статическим корнем, имена которых просто разделяют настроенный префикс, могут подаваться непреднамеренно, что приводит к раскрытию информации. Эта проблема была исправлена в версиях 2.2.23, 3.1.21, и 3.2.6.
CVE-2026-34230Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21, и 3.2.6, Rack::Utils.select_best_encoding процессов Accept-Encoding с квадратичной сложностью времени, когда заголовок содержит много подстановочных знаков (*). Поскольку этот метод используется Rack::Deflater для выбора кодировки ответа, неаутентифицированный злоумышленник может отправить один запрос с созданным заголовком Accept-Encoding и вызвать непропорциональное потребление процессора на пути промежуточного программного обеспечения сжатия. Это приводит к отказу в обслуживании для приложений с использованием Rack::Deflater. Эта проблема была исправлена в версиях 2.2.23, 3.1.21, и 3.2.6.
CVE-2026-22860Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.22, 3.1.20 и 3.2.5, `Rack::Directory's path check использовало соответствие струнного префикса на расширенном пути. Запрос, такой как `//../root_example/` может вырваться из сконфигурированного корня, если целевой путь начинается с корневой строки, позволяя списать каталоги за пределами предполагаемого корня. Версии 2.2.22, 3.1.20 и 3.2.5 исправить проблему.
CVE-2025-61919Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.20, 3.1.18 и 3.2.3 `Rrack::Запрос #POСТ` читает весь орган запроса в память для `Content-Type: application/x-www-form-urlencoded`, вызывая `rack.input.read(nil)` без принуждения к длине или крышке. Таким образом, большие тела запроса могут быть полностью защищрены в память процесса перед разбором, что приводит к отказу в обслуживании (DoS) через истощение памяти. Пользователи должны обновиться до версии 2.2.20, 3.1.18 или 3.2.3, ану из которых обеспечивает соблюдение ограничений параметров формы с использованием `query_parser.bytesize_limit`, предотвращая безграничные считывания `application/x-www-form-urlencoded` тела. Кроме того, обеспечить строгий максимальный размер тела на уровне прокси или веб-сервера (например, Nginx `client_max_body_size`, Apache `LimitRequestBody`).
CVE-2025-61772Rack - это модульный интерфейс веб-сервера Ruby. В версиях до 2.2.19, 3.1.17 и 3.2.2 `Rack::Multipart::Parser может накапливать несвязанные данные, когда блок заголовка многочастей никогда не заканчивается требуемой пустой линией (CRLFCRLF`). Парсер продолжает привносить входящие байты в память без ограничения размера, что позволяет удаленному злоумышленнику исчерпать память и вызвать отказ в обслуживании (DoS). Злоумышленники могут отправлять неполные многочастные заголовки, чтобы вызвать высокое использование памяти, что приводит к прекращению процесса (OOM) или серьезному замедлению. Эффект масштабы с ограничениями размера запроса и паритетом. Все приложения, обрабатывающие многочастные загрузки, могут быть затронуты. Версии 2.2.19, 3.1.17 и 3.2.2 размер штепель на заголовок (например, 64 KiB). В качестве обходного действия ограничьте максимальные размеры запроса на уровне прокси или веб-сервера (например, Nginx `client_max_body_size`).
CVE-2025-61771Rack - это модульный интерфейс веб-сервера Ruby. В версиях до 2.2.19, 3.1.17 и 3.2.2, `Rack::Multipart::Parser` хранит поля non-File form (части без имени файла) полностью в памяти как Ruby `String` объекты. Одно большое текстовое поле в запросе на многочастные/формальные данные (сотни мегабайт или более) может потреблять эквивалентную память процесса, что потенциально может привести к условиям вне памяти (OOM) и отказу в обслуживании (DoS). Злоумышленники могут отправлять большие нефайловые поля, чтобы вызвать чрезмерное использование памяти. Ударные весы с размером запроса и параллельностью, что может привести к сбоям рабочих или тяжелым накладным сбором мусора. Затрагиваются все заявки на обработку многочастных форм. Версии 2.2.19, 3.1.17 и 3.2.2 обеспечивают соблюдение допустимого ограничения размера для нефайловых полей (например, 2 МиБ). Пространства включают ограничение максимального размера тела запроса на веб-сервере или прокси-слое (например, Nginx `client_max_body_size`) и проверку и отклонение необычно больших полей формы на уровне приложения.
CVE-2025-61770Rack - это модульный интерфейс веб-сервера Ruby. В версиях до 2.2.19, 3.1.17 и 3.2.2, `Rack::Multipart::Parser` буферизует всю многокомпонентную преамбулу (байты перед первой границей) в памяти без какого-либо ограничения по размеру. Клиент может отправить большую преамбулу с последующей действительной границей, вызывая значительное использование памяти и потенциальное прекращение процесса из-за условий вне памяти (OOM). Удаленные злоумышленники могут вызвать большие временные всплески памяти, включив длинную преамбулу в запросы multipart/form-data. Весы ударов с разрешенными размерами запросов и конкуличенностью, что может привести к сбоям рабочих или сильному замедлению из-за сбора мусора. Версии 2.2.19, 3.1.17 и 3.2.2 обеспечивают соблюдение предельного размера преамбулы (например, 16 KiB) или полностью отбрасывание данных преамбулы. Процедуры включают ограничение общего размера тела запроса на уровне прокси или веб-сервера и мониторинг памяти и устанавливают ограничения по процессу для предотвращения условий OOM.
CVE-2025-59830Rack - модульный интерфейс веб-сервера Ruby. До версии 2.2.18 Rack::QueryParser обеспечивает ограничение params_limit только для параметров, разделенных символом &, при этом разбивая как на &, так и ;. В результате злоумышленники могли использовать разделители ;, чтобы обойти ограничение количества параметров и отправить больше параметров, чем предполагалось. Приложения или middleware, напрямую вызывающие Rack::QueryParser с конфигурацией по умолчанию (без явного разделителя), могли быть подвержены повышенному потреблению CPU и памяти. Это можно использовать как ограниченный вектор отказа в обслуживании. Проблема была исправлена в версии 2.2.18 [1].
Источники:
- [1] https://github.com/rack/rack/security/advisories/GHSA-625h-95r8-8xpm
- [2] https://github.com/rack/rack/commit/54e4ffdd5affebcb0c015cc6ae74635c0831ed71
CVE-2025-46727Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.14, 3.0.16 и 3.1.14 `Rack::QueryParser` разбирает строки запросов и тела типа `application/x-www-form-urlencoded` в структуры данных Ruby без ограничения на количество параметров, что позволяет злоумышленникам отправлять запросы с чрезвычайно большим количеством параметров. Уязвимость возникает из-за того, что `Rack::QueryParser` итерирует каждую пару ключ-значение, разделенную `&`, и добавляет ее в хэш без ограничения на общее количество параметров. Это позволяет злоумышленнику отправить один запрос, содержащий сотни тысяч (или более) параметров, что потребляет чрезмерное количество памяти и ресурсов CPU во время разбора. Злоумышленник может вызвать отказ в обслуживании, отправив специально сформированные HTTP-запросы, что может привести к исчерпанию памяти или загрузке ресурсов CPU, что приведет к зависанию или краху сервера Rack. Это приводит к полному нарушению обслуживания до перезапуска пораженного рабочего процесса. Версии 2.2.14, 3.0.16 и 3.1.14 исправляют проблему. Некоторые другие меры по смягчению последствий доступны. Можно использовать промежуточное ПО для обеспечения максимального размера строки запроса или количества параметров, или использовать обратный прокси (например, Nginx) для ограничения размеров запросов и отклонения слишком больших строк запросов или тел. Ограничение размеров тела запроса и длины строки запроса на уровне веб-сервера или CDN является эффективной мерой по смягчению последствий [1].
Источники:
- [1] https://github.com/rack/rack/security/advisories/GHSA-gjh7-p2fx-99vx
- [2] https://github.com/rack/rack/commit/2bb5263b464b65ba4b648996a579dbd180d2b712
- [3] https://github.com/rack/rack/commit/3f5a4249118d09d199fe480466c8c6717e43b6e3
- [4] https://github.com/rack/rack/commit/cd6b70a1f2a1016b73dc906f924869f4902c2d74
CVE-2025-27610Rack предоставляет интерфейс для разработки веб-приложений на Ruby. До версий 2.2.13, 3.0.14 и 3.1.12, `Rack::Static` может обслуживать файлы под указанным `root:`, даже если `urls:` предоставлены, что может неожиданно открыть доступ к другим файлам под указанным `root:`. Уязвимость возникает из-за того, что `Rack::Static` не правильно очищает пути, предоставленные пользователем, прежде чем обслуживать файлы. В частности, закодированные последовательности обхода пути не проверяются должным образом, что позволяет атакующим получить доступ к файлам за пределами назначенной директории статических файлов. Эксплуатируя эту уязвимость, атакующий может получить доступ ко всем файлам под указанной директорией `root:`, при условии, что он сможет определить путь к файлу. Версии 2.2.13, 3.0.14 и 3.1.12 содержат исправление этой проблемы. Другими мерами смягчения являются удаление использования `Rack::Static` или обеспечение того, чтобы `root:` указывало на директорию, которая содержит только файлы, которые должны быть доступны публично. Скорее всего, CDN или подобный сервер статических файлов также помогут уменьшить эту проблему.
CVE-2023-27530Существует уязвимость DoS в Rack <v3.0.4.2, <v2.2.6.3, <v2.1.4.3 и <v2.0.9.3 в коде анализа Multipart MIME, в которой злоумышленник может создавать запросы, которые могут быть использованы для того, чтобы анализ multipart занимал больше времени, чем ожидалось.
CVE-2022-44572Уязвимость отказа в обслуживании в компоненте многокомпонентного анализа Rack, исправленная в версиях 2.0.9.2, 2.1.4.2, 2.2.4.1 и 3.0.0.1, может позволить злоумышленнику создать входные данные, которые могут привести к тому, что анализ многокомпонентной границы RFC2183 в Rack займет неожиданно много времени, что может привести к вектору атаки типа «отказ в обслуживании». Это влияет на любые приложения, которые анализируют многокомпонентные сообщения с помощью Rack (практически все приложения Rails).
CVE-2022-44571Существует уязвимость отказа в обслуживании в компоненте анализа Content-Disposition в Rack, исправленная в версиях 2.0.9.2, 2.1.4.2, 2.2.4.1, 3.0.0.1. Это может позволить злоумышленнику создать входные данные, которые могут привести к тому, что анализ заголовка Content-Disposition в Rack займет неожиданно много времени, что может привести к вектору атаки типа «отказ в обслуживании». Этот заголовок обычно используется при многокомпонентном анализе. Это влияет на любые приложения, которые анализируют многокомпонентные сообщения с помощью Rack (практически все приложения Rails).
CVE-2022-44570Уязвимость отказа в обслуживании в компоненте анализа заголовка Range в Rack >= 1.5.0. Тщательно разработанный ввод может привести к тому, что компонент анализа заголовка Range в Rack займет неожиданно много времени, что может привести к вектору атаки типа «отказ в обслуживании». Это может повлиять на любые приложения, работающие с запросами Range (такие как потоковые приложения или приложения, обслуживающие файлы).
CVE-2025-27111Rack - это модульный интерфейс веб-сервера Ruby. Промежуточное ПО Rack::Sendfile записывает несоответствующие значения заголовков из заголовка X-Sendfile-Type. Злоумышленник может воспользоваться этим, внедряя управляющие последовательности (например, символы новой строки) в заголовок, что приводит к инъекции в журнал. Эта уязвимость исправлена в версиях 2.2.12, 3.0.13 и 3.1.11.
CVE-2025-49007Rack - это модульный интерфейс веб-сервера Ruby. Начиная с версии 3.1.0 и до версии 3.1.16, существует уязвимость отказа в обслуживании в компоненте разбора Content-Disposition в Rack. Это очень похоже на предыдущую проблему безопасности CVE-2022-44571. Тщательно подготовленный входной данные могут вызвать разбор заголовка Content-Disposition в Rack, занимающий неожиданное количество времени, что потенциально может привести к вектору атаки отказа в обслуживании. Этот заголовок обычно используется при разборе multipart. Любое приложение, которое разбирает multipart-запросы с помощью Rack (практически все приложения Rails), подвержено воздействию. В версии 3.1.16 содержится исправление уязвимости [1]. Уязвимость связана с ReDoS в разборе multipart-заголовков, поскольку он не привязан к началу строки и может совпадать как часть комментариев. Ранее в `Content-ID` и `Content-Type` были изменены, чтобы принимать только табуляцию и пробел в качестве символов пробела, хотя различные RFC показывают их BNF как синтаксис после «разворачивания» строк. Символ возврата каретки (CR) не допускается без экранирования как часть цитируемой строки, хотя технически это может быть допустимо с ведущей обратной косой чертой, но этот случай не стоит поддерживать [2].
Источники:
- [1] https://github.com/rack/rack/security/advisories/GHSA-47m2-26rw-j2jw
- [2] https://github.com/rack/rack/commit/4795831a0a310c2d31102749e551b38faab6401f
- [3] https://github.com/rack/rack/commit/aed514df37e33907df3c971ed3ca9a0a20ac2901
CVE-2026-34835Rack - это модульный интерфейс веб-сервера Ruby. От версий 3.0.0.beta1 до 3.1.21, и 3.2.0 до 3.2.6, Rack::Запрос анализирует заголовок Хоста, используя регулярное выражение AUTHORITY, которое принимает символы, не допускаемые в RFC-совместимых именах хостов, включая /, ?, # и @. Поскольку req.host возвращает полное количество разбора, приложения, которые проверяют хосты с помощью наивных префиксов или суффикса, могут быть обойдены. Это может привести к отравлению заголовком хоста в приложениях, которые используют req.host, req.url или req.base_url для генерации ссылок, перенаправлений или проверки происхождения. Эта проблема была исправлена в версиях 3.1.21 и 3.2.6.
CVE-2026-34831Rack - это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21 и 3.2.6 Rack::Files#fail устанавливает заголовок ответа Доли Контента, используя String#size вместо String#bytesize. Когда орган ответа содержит многобайтные символы UTF-8, заявленная Длина Содержимого меньше, чем количество байтов, фактически отправленных на проводе. Поскольку Rack::Файлы отражают запрошенный путь в ответах 404, злоумышленник может вызвать это несоответствие, запросив несуществующий путь, содержащий закодированные в процентном отношении символы UTF-8. Это приводит к неправильному обрамлением HTTP-ответа и может вызвать десинхронизацию отклика в развертываниях, которые полагаются на неправильное значение Content-Length. Эта проблема была исправлена в версиях 2.2.23, 3.1.21, и 3.2.6.
CVE-2026-32762Rack - это модульный интерфейс веб-сервера Ruby. От версий 3.0.0.beta1 до 3.1.21 и 3.2.0 до 3.2.6, Rack::Utils.forwarded_values анализирует передвижной заголовок RFC 7239, разделившись на точках с запятой перед обработкой значений котировки. Поскольку котируемые значения могут юридически содержать точки запятой, заголовок может быть интерпретирован Rack как несколько пересылаемых директив, а не как один роз. В развертываниях, где вышестоящий прокси, WAF или посредник проверяет или сохраняет цитируемые пересылаемые значения по-разному, это несоответствие может позволить злоумышленнику контрабандой провезти хост, прото, для или по параметрам через одно значение заголовка. Эта проблема была исправлена в версиях 3.1.21 и 3.2.6.
CVE-2026-26962Rack - это модульный интерфейс веб-сервера Ruby. От версии 3.2.0 до версии 3.2.6, Стойка::Multipart::Parser разворачивает сложенные многочастные заголовки неправильных. Когда многочастный заголовок содержит последовательность обложки, Rack сохраняет встроенный CRLF в разборных значениях параметров, таких как имя файла или имя, вместо того, чтобы удалять сложенный разрыв линии во время разворачивания. В результате приложения, которые позже повторно используют эти разобранные значения в заголовках ответов HTTP, могут быть уязвимы для инъекции заголовка или разделения ответов. Эта проблема была исправлена в версии 3.2.6.