VDB
Sign up
MEDIUM5.3

GHSA-22f2-v57c-j9cx

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

Quick fix

GHSA-22f2-v57c-j9cx — rack: upgrade to the fixed version with the command below.

bundle update rack

Details

### 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.

Are you affected?

Enter the version of the package you're using.

Affected packages

RubyGems/rack
Introduced in: 3.0.0Fixed in: 3.0.9.1
Fixbundle update rack
RubyGems/rack
Introduced in: 0.4Fixed in: 2.2.8.1
Fixbundle update rack

References