GHSA-22f2-v57c-j9cxMediumCVSS 5.3

Rack vulnerable to ReDoS in content type parsing (2nd degree polynomial)

Published
February 28, 2024
Last Modified
March 15, 2026

🔗 CVE IDs covered (1)

📋 Description

Summary

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:

request["Content-Type"] = (" " * 50_000) + "a,"

Impact

It's a very easy to craft ReDoS. Like all ReDoS the impact is debatable.

🎯 Affected products2

  • rubygems/rack:>= 3.0.0, < 3.0.9.1
  • rubygems/rack:>= 0.4, < 2.2.8.1

🔗 References (9)