[CVE-2018-16470] Possible DoS vulnerability in Rack
(too old to reply)
Aaron Patterson
2018-11-05 20:07:39 UTC
There is a possible DoS vulnerability in the multipart parser in Rack. This
vulnerability has been assigned the CVE identifier CVE-2018-16470.

Versions Affected: 2.0.4, 2.0.5
Not affected: <= 2.0.3
Fixed Versions: 2.0.6

There is a possible DoS vulnerability in the multipart parser in Rack.
Carefully crafted requests can cause the multipart parser to enter a
pathological state, causing the parser to use CPU resources disproportionate to
the request size.

Impacted code can look something like this:


But any code that uses the multi-part parser may be vulnerable.

Rack users that have manually adjusted the buffer size in the multipart parser
may be vulnerable as well.

All users running an affected release should either upgrade or use one of the
workarounds immediately.

The 2.0.6 release is available at the normal locations.

To work around this issue, the following code can be used:

require "rack/multipart/parser"

Rack::Multipart::Parser.send :remove_const, :BUFSIZE
Rack::Multipart::Parser.const_set :BUFSIZE, 16384

To aid users who aren't able to upgrade immediately we have provided patches for
the supported release series. They are in git-am format and consist of a
single changeset.

* 2-0-multipart-dos.patch - Patch for 2.0 series

Please note that only the 1.6.x and 2.0.x series are supported at present. Users
of earlier unsupported releases are advised to upgrade as soon as possible as we
cannot guarantee the continued availability of security fixes for unsupported

Thanks to the following people for reporting this issue!

* Bo Jeanes <***@bjeanes.com>
* Jack "chendo" Chen <***@chen.do>
Aaron Patterson