Rack is vulnerable to a memory-exhaustion DoS through unbounded URL-encoded body parsing
Rack web servers can be crashed by sending very large form data requests that consume all available memory. An attacker can exploit this by submitting oversized URL-encoded forms, causing the server to run out of memory and stop responding.
Rack::Request#POST in versions prior to 2.2.20, 3.1.18, and 3.2.3 performs unbounded buffering of application/x-www-form-urlencoded request bodies via rack.input.read(nil), lacking enforced size limits. An unauthenticated remote attacker can send a large POST request with Content-Type: application/x-www-form-urlencoded to exhaust server memory and trigger denial of service. Mitigation requires upgrading to patched versions and enforcing body size limits at the proxy/web server layer.
Want to know if your infrastructure is exposed to this?
Talk to TrueHacking →