Rack vulnerable to ReDoS in content type parsing (2nd degree polynomial)
### Summary ```ruby module Rack class MediaType SPLIT_PATTERN = %r{\s*[;,]\s*} ``` The above regexp is subject to ReDos. 50K blank characters as a prefix to the header will take over 10s to split. ### PoC A simple HTTP request with lots of blank characters in the content-type header: ```ruby request["Content-Type"] = (" " * 50_000) + "a," ``` ### Impact It's a very easy to craft ReDoS. Like all ReDoS the impact is debatable.
01
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2024-25126US | high7.5 | — | ||
Rack is a modular Ruby web server interface. Carefully crafted content type headers can cause Rack’s media type parser to take much longer than expected, leading to a possible deni… | ||||
02
references
External citations — patches, advisories, analysis.
- https://discuss.rubyonrails.org/t/denial-of-service-vulnerability-in-rack-content-type-parsing/84941WEB
- https://github.com/rack/rackPACKAGE
- https://github.com/rack/rack/commit/6efb2ceea003c4b195815a614e00438cbd543462WEB
- https://github.com/rack/rack/commit/d9c163a443b8cadf4711d84bd2c58cb9ef89cf49WEB
- https://github.com/rack/rack/security/advisories/GHSA-22f2-v57c-j9cxWEB
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rack/CVE-2024-25126.ymlWEB
- https://lists.debian.org/debian-lts-announce/2024/04/msg00022.htmlWEB
- https://nvd.nist.gov/vuln/detail/CVE-2024-25126ADVISORY
scry
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan