Impact
In Erlang OTP’s inets httpd module, duplicate Content‑Length headers are not rejected or normalised. The server parses the request body using the earliest Content‑Length value while common reverse proxies (nginx, Apache httpd, Envoy) honour the last header, creating a desynchronization that violates RFC 9112 Section 6.3. This allows an attacker to craft a request that injects arbitrary data into the start of the following request, effectively enabling HTTP request smuggling. The flaw involves the httpd_request module (lib/inets/src/http_server/httpd_request.erl) and its parse_headers/7 routine and can lead to unauthorised request injection or data corruption (CWE‑444).
Affected Systems
The vulnerability affects Erlang OTP releases from 17.0 up to, but not including, 28.4.1, and also the specific releases 27.3.4.9 and 26.2.5.18, along with inets httpd versions from 5.10 up to, but not including, 9.6.1, and the specific versions 9.3.2.3 and 9.1.0.5. Systems running these versions are vulnerable unless mitigated.
Risk and Exploitability
The CVSS score is 7, indicating high severity, but the EPSS score of less than 1 % suggests a low likelihood of exploitation in the near term. The vulnerability is not listed in CISA’s KEV catalog. The attack vector is likely a remote attacker sending a crafted HTTP request containing duplicate Content‑Length headers directly to the vulnerable httpd instance, as inferred from the description, potentially causing request smuggling and arbitrary request injection on the backend.
OpenCVE Enrichment
Debian DLA