Skip to main content

Erlang/OTP inets httpd CVE-2026-66357

| EUVDEUVD-2026-69232 HIGH
HTTP Request/Response Smuggling (CWE-444)
2026-09-01 EEF
8.3
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send obs-fold HTTP request to reverse proxy
  2. Delivery
    Proxy normalizes fold as header continuation
  3. Exploit
    httpd silently promotes fold to new Transfer-Encoding header
  4. Execution
    Proxy and httpd disagree on request boundary
  5. Persist
    Attacker-controlled data prepended to next victim request
  6. Impact
    Session hijack or response poisoning

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
Exploitation Conditions

Exploitation requires two concurrent conditions: (1) the target must be running Erlang/OTP's inets httpd specifically - not Cowboy, Plug/Bandit, or other Erlang HTTP servers - on an affected OTP version (17.0 through 27.3.4.16 / 28.0 through 28.5.0.5 / 29.0 through 29.0.5); and (2) a reverse proxy, load balancer, or CDN must sit in front of httpd that does not itself reject obs-fold sequences before forwarding. If httpd is directly internet-exposed without a proxy, the smuggling vector does not apply (though header injection into the httpd parsing layer may still be possible). No authentication is required (PR:N in CVSS). No user interaction is required. Exploitation is limited by the relative infrequency of inets httpd in production-facing deployments, as most Erlang web applications use Cowboy or similar servers rather than the built-in inets httpd.

Impact

The CVSS 4.0 score of 8.3 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:L/SA:N) is consistent with real-world HTTP smuggling risk. AT:P (attack requirements present) is the key constraint: exploitation requires a reverse proxy in front of httpd that does not itself reject obs-fold. EPSS data is not provided in the input, and there is no CISA KEV listing, meaning active exploitation at scale is not confirmed. POC availability is unknown. The VI:H rating reflects that successful smuggling can inject arbitrary headers into other users' requests - a high-integrity impact. The CVSS 4.0 SI:L for subsequent systems appears conservative; in typical smuggling attacks the downstream impact on other users' sessions can be substantially higher. Despite no confirmed exploitation, the attack is unauthenticated, requires no user interaction, and the affected version range spans OTP 17.0 onward - a very long exposure window. Priority should be elevated for any Erlang httpd deployment behind a load balancer or reverse proxy (nginx, HAProxy, AWS ALB) that does not already strip or reject obs-fold sequences.

Exploit ScenarioDerived

An attacker sends a crafted HTTP/1.1 request to a reverse proxy with an obs-fold line - for example, a line starting with a space after a CRLF - embedding a Transfer-Encoding: chunked header as a folded continuation. The proxy interprets it as a single header field (correct RFC behavior) and forwards a normalized representation, while the unfixed Erlang httpd treats the folded line as a new, separate header, creating a discrepancy in request boundary parsing. This allows the attacker to prepend data to the next request processed by httpd on that connection, potentially hijacking another user's session or injecting arbitrary content into their response. No public POC has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

HTTP request smuggling in Erlang/OTP's built-in inets httpd server allows unauthenticated remote attackers to inject arbitrary HTTP headers and poison request pipelines in deployments fronted by a reverse proxy. The root cause is a longstanding absence of obs-fold support: any CRLF followed by a whitespace octet (SP or TAB) is silently parsed as a new header rather than a header continuation, causing proxy-backend disagreement on request boundaries. Affected versions span OTP 17.0 through the patched releases (27.3.4.17, 28.5.0.6, 29.0.6), with vendor patches now available via the Erlang GitHub security advisory. No public exploit code or CISA KEV listing exists at time of analysis.

RemediationAI

Upgrade to Erlang/OTP 27.3.4.17, 28.5.0.6, or 29.0.6 (corresponding to inets 9.3.2.7, 9.6.2.3, or 9.7.2 respectively) as identified in the GitHub security advisory at https://github.com/erlang/otp/security/advisories/GHSA-qh2f-33hj-37qf. Upstream fix commits are 220d618d, 273d8958, and e640d599. For deployments where an immediate OTP upgrade is not feasible, place a reverse proxy or WAF in front of httpd that is configured to reject (HTTP 400) requests containing obs-fold sequences (CRLF followed by SP or TAB in header lines) before forwarding; note this shifts the rejection logic upstream rather than eliminating the root cause. Alternatively, if httpd is not being used as a public-facing HTTP server but only for internal Erlang tooling (e.g., the OTP debugger or documentation server), restrict network access to trusted internal subnets to eliminate the network attack surface. Upgrading is strongly preferred over compensating controls given the breadth of affected versions.

Affected VersionsENISA

otp 9.7 <9.7.2
otp 9.4 <9.6.2.3
otp 5.10 <9.3.2.7
otp 28.0 <28.5.0.6
otp 84adefa331c4159d432d22840663c38f155cd4c1 <*
otp 29.0 <29.0.6
otp 17.0 <27.3.4.17

Affected Packages

euvd otp fix: 9.3.2.7, 9.6.2.3, 9.7.2, 27.3.4.17, 28.5.0.6, 29.0.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The inets library (part of Erlang/OTP, cpe:2.3:a:erlang:otp) ships an HTTP/1.x server called httpd. RFC 2616 §2.2 and RFC 7230 §3.2.4 defined 'obs-fold' - obsolete header field folding where a CRLF followed by SP or TAB continued the previous header rather than starting a new one. RFC 9112 §5.2 now mandates that servers reject such sequences with HTTP 400. Erlang httpd never implemented obs-fold merging: every CRLF+octet pair unconditionally begins a new header. This creates a parsing discrepancy (CWE-444: Inconsistent Interpretation of HTTP Requests) when a reverse proxy correctly normalizes obs-fold lines before forwarding, while the backend httpd has already parsed the folded portion as a new, separate header. The fix (commit 220d618 and two siblings) adds an explicit match clause in httpd_request.erl that returns {error, {bad_request, 400, "obs-fold not supported"}} when a CRLF is followed by SP or TAB, aligning httpd with RFC 9112's requirement to reject rather than silently misparse.

Know when Otp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.3 HIGH
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
vuln.today AI 7.5 HIGH

AC:H because smuggling requires a misconfigured reverse proxy in the path; S:C because other users' requests are affected beyond the vulnerable component.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:H/SA:N
Red Hat 9.3 CRITICAL

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

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.

Technical POC Analysis

CWE-444 (Inconsistent Interpretation of HTTP Requests).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Erlang/OTP's HTTP server (versions prior to 27.3.4.17/28.5.0.6/29.0.6) contains a high-severity request smuggling vulnerability (CVSS 8.3) exploitable by unauthenticated attackers. Organizations running Erlang/OTP services behind reverse proxies face risk of security control bypass, request hijacking, and potential credential compromise if the vulnerability remains unpatched. This affects any Erlang/OTP deployment exposed to untrusted networks, making immediate assessment and patching critical.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
inets httpd rarely used in production; Cowboy dominates Erlang web deployments
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Otp

View all
CVE-2022-24584 MEDIUM POC
6.5 May 11

Incorrect access control in Yubico OTP functionality of the YubiKey hardware tokens along with the Yubico OTP validation

CVE-2026-89422 CRITICAL
9.3 Sep 22

Erlang/OTP's ssl application in affected releases (OTP 22.2 through the fixed 27.3.4.18, 28.5.0.7 and 29.1.1) will compl

CVE-2026-55953 CRITICAL
9.1 Jul 27

An on-path attacker can force an Erlang/OTP TLS 1.2 or DTLS client to accept an anonymous cipher suite not offered by th

CVE-2026-49759 HIGH
8.8 Jun 10

Denial of service in Erlang/OTP erts (inet_drv SCTP handler) lets unauthenticated remote attackers crash the BEAM VM by

CVE-2026-70399 HIGH
8.7 Sep 01

Unauthenticated denial of service in Erlang/OTP's inets httpd allows any remote attacker to exhaust a server's process p

CVE-2026-55950 HIGH
8.7 Jul 02

Remote denial of service in Erlang/OTP's ssl application (dtls_packet_demux module) lets an unauthenticated attacker cra

CVE-2026-71380 HIGH
8.7 Sep 01

Erlang/OTP's inets HTTP server (httpd) is vulnerable to a slow-body resource exhaustion attack exploitable by unauthenti

CVE-2026-58227 HIGH
8.7 Jul 27

Uncontrolled recursion in the Erlang/OTP ssl application when processing a crafted TLS/DTLS certificate chain allows rem

CVE-2026-74835 HIGH
8.7 Sep 01

Erlang/OTP's inets HTTP server (httpd) fails to enforce an administrator-configured request body-size limit when process

CVE-2026-59250 HIGH
8.3 Jul 27

Remote code execution and denial of service are possible against Erlang/OTP nodes that run the megaco application with t

CVE-2026-73276 HIGH
8.3 Sep 01

Remote unauthenticated attackers can exploit Erlang/OTP's built-in inets HTTP server across OTP versions 22.2 through 29

CVE-2026-73812 HIGH
8.3 Sep 01

Request smuggling in Erlang OTP inets (versions 17.0 through 29.x) arises when the httpd server sits behind a Content-Le

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy