Rack — это модульный интерфейс веб-сервера Ruby. Начиная с версии 3.1.0 и до версии 3.1.5, в модуле `Rack::Request::Helpers` существует уяз…
Rack — это модульный интерфейс веб-сервера Ruby. Начиная с версии 3.1.0 и до версии 3.1.5, в модуле `Rack::Request::Helpers` существует уязвимость типа «отказ в обслуживании из-за регулярного выражения» (ReDoS) при анализе заголовков HTTP Accept. Эту уязвимость может использовать злоумышленник, отправив специально созданные заголовки `Accept-Encoding` или `Accept-Language`, что приведет к тому, что сервер потратит слишком много времени на обработку запроса и приведет к отказу в обслуживании (DoS). Исправление для CVE-2024-26146 не было применено к основной ветке, и, таким образом, хотя проблема была исправлена для серии выпусков Rack v3.0, она не была исправлена в серии выпусков v3.1 до v3.1.5. Пользователям версий в ветке 3.1 следует обновиться до версии 3.1.5, чтобы получить исправление.
Продукт использует регулярное выражение с неэффективной, возможно экспоненциальной вычислительной сложностью в худшем случае, что ведёт к избыточному потреблению ресурсов CPU.
https://cwe.mitre.org/data/definitions/1333.html →Открыть в коллекции CWE →Злоумышленник может реализовать атаку на программу, использующую неэффективную реализацию регулярных выражений (Regex), подобрав входные данные, приводящие к крайне неблагоприятному сценарию работы Regex. Типичный крайний сценарий характеризуется экспоненциальным временем работы относительно размера входных данных. Это объясняется тем, что большинство реализаций использует недетерминированный конечный автомат (NFA) в качестве основы алгоритма Regex, поскольку NFA допускает обратный просмотр и тем самым поддерживает более сложные регулярные выражения.
https://capec.mitre.org/data/definitions/492.html →Открыть в коллекции CAPEC →