ZeroHour

CVE-2026-66357

large

HTTP request smuggling in Erlang/OTP inets httpd (obs-fold not implemented)

CVSS 4.0
8.3 high
EPSS
<1%p26
Published
()
Modified
AI analysis

The HTTP server (httpd) in Erlang/OTP's inets application has never implemented obs-fold (header continuation lines), so every CRLF followed by any non-CRLF octet is unconditionally parsed as the start of a new header rather than a folded continuation. An attacker sends HTTP requests containing folded header lines that a front-end proxy treats as continuations while httpd treats them as separate headers, causing the proxy and backend to disagree about message boundaries and enabling classic HTTP request smuggling (CWE-444). Successful smuggling can let the attacker bypass access controls, poison or hijack responses, or corrupt downstream requests; CVSS 4.0 rates this 8.3 (high) with high integrity impact on the vulnerable system. All deployments using inets httpd in the affected OTP release lines are exposed, particularly those placed behind reverse proxies or load balancers that accept obs-fold; whether OTP releases before 17.0 (inets before 5.10) are affected is unknown. No public PoC exists, it is not in CISA KEV, and EPSS is low (0.3% probability of exploitation within 30 days), with no known in-the-wild exploitation.

What to do: Upgrade Erlang/OTP to OTP 27.3.4.17, OTP 28.5.0.6, or OTP 29.0.6 (or later), which include the fixed inets versions 9.3.2.7, 9.6.2.3, and 9.7.2 respectively. Until patched, avoid fronting inets httpd with proxies or load balancers that accept or normalize obs-fold header lines, or configure the front end to reject folded headers; check which of your Erlang/OTP deployments expose httpd over the network and whether they sit behind a proxy.

Affected
Ericsson Erlang/OTP inets httpdOTP 17.0 up to (excluding) OTP 27.3.4.17, corresponding to inets 5.10 up to (excluding) 9.3.2.7
Ericsson Erlang/OTP inets httpdOTP 28.0 up to (excluding) OTP 28.5.0.6, corresponding to inets 9.4 up to (excluding) 9.6.2.3
Ericsson Erlang/OTP inets httpdOTP 29.0 up to (excluding) OTP 29.0.6, corresponding to inets 9.7 up to (excluding) 9.7.2
Ericsson Erlang/OTP inets httpdOTP releases before 17.0 (inets before 5.10) - affected status unknown
Estimated exposure
largeon the order of tens of thousands of internet-exposed httpd endpoints (estimate) — inets ships with every Erlang/OTP installation, but httpd is typically used for embedded or internal interfaces, so a small fraction of the very large Erlang/OTP install base - plausibly tens of thousands of hosts per public internet…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

httpd has never implemented obs-fold (RFC 2616 §2.2 / RFC 7230 §3.2.4 header continuation lines). Every CRLF followed by a non-CRLF octet unconditionally starts a new header. This missing feature became a security concern as the understanding of HTTP request smuggling attacks evolved. This issue affects OTP from OTP 17.0 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP 29.0.6, corresponding to inets from 5.10 before 9.3.2.7, from 9.4 before 9.6.2.3, and from 9.7 before 9.7.2. Whether OTP before OTP 17.0, corresponding to inets before 5.10, is affected is unknown.

Weakness
CWE-444
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.