Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
CVE-2023-40175
Summary
Puma is a Ruby/Rack web server built for parallelism. In versions 5.6.6, and 6.0.0 through 6.3., puma exhibited incorrect behavior when parsing chunked transfer encoding bodies and "zero-length" content-length headers in a way that allowed HTTP Request Smuggling. Severity of this issue is highly dependent on the nature of the website using puma is. This could be caused by either incorrect parsing of trailing fields in chunked transfer encoding bodies or by parsing of "blank/zero-length" content-length headers. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- LOW
- NETWORK
- HIGH
- UNCHANGED
- NONE
- NONE
- HIGH
- HIGH
CWE-444 - HTTP Request Smuggling
Entities such as web servers, web caching proxies, and application firewalls could parse HTTP requests differently. When there are two or more such entities in the path of an HTTP request, an attacker can send a specially crafted HTTP request that is seen as two different sets of requests by the attacked devices, allowing the attacker to smuggle a request into one device without the other device being aware of it. Such a vulnerability can prove devastating, for it enables further attacks on the application, like web cache poisoning, session hijacking, cross-site scripting, security bypassing, and sensitive information exposure.
References
Advisory Timeline
- Published