Description
Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') vulnerability in Erlang OTP (inets httpd module) allows HTTP Request Smuggling. This vulnerability is associated with program files lib/inets/src/http_server/httpd_request.erl and program routines httpd_request:parse_headers/7. The server does not reject or normalize duplicate Content-Length headers. The earliest Content-Length in the request is used for body parsing while common reverse proxies (nginx, Apache httpd, Envoy) honor the last Content-Length value. This violates RFC 9112 Section 6.3 and allows front-end/back-end desynchronization, leaving attacker-controlled bytes queued as the start of the next request. This issue affects OTP from OTP 17.0 until OTP 28.4.1, OTP 27.3.4.9 and OTP 26.2.5.18, corresponding to inets from 5.10 until 9.6.1, 9.3.2.3 and 9.1.0.5.
Problem types
CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling')
Product status
5.10 (otp) before *
pkg:otp/inets@5.10 (purl) before pkg:otp/inets@*
17.0 (otp) before *
Any version before *
Credits
Luigino Camastra / Aisle Research
Konrad Pietrzak
References
github.com/...ng/otp/security/advisories/GHSA-w4jc-9wpv-pqh7
www.erlang.org/doc/system/versions.html
github.com/...ommit/a4b46336fd25aa100ac602eb9a627aaead7eda18
github.com/...ommit/a761d391d8d08316cbd7d4a86733ba932b73c45b
github.com/...ommit/e775a332f623851385ab6ddb866d9b150612ddf6