webrick is a HTTP server toolkit that can be configured as an HTTPS server, a proxy server, and a virtual-host server.
Affected versions of this package are vulnerable to HTTP Request Smuggling when httprequest.rb
processes a request with both Content-Length
and Transfer-Encoding
headers. An attacker can send a GET /admin
inside a POST /user
to trick the server into treating the second one as a legitimate request, exposing unintended data.
Note: The package maintainers instruct users not to use this package in production and that it is no longer part of the Ruby language although it was in the past.
POST /user HTTP/1.1
Host: 127.0.0.1:8000
Content-Length: 50
Transfer-Encoding: chunked
0
GET /admin HTTP/1.1
Host: 127.0.0.1:8000
Upgrade webrick
to version 1.8.2 or higher.