Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify inets behind CL-preferring proxy
-
DeliveryCraft request with both TE and CL headers
-
ExploitProxy forwards by Content-Length boundary
-
Installinets parses by chunked TE, discards CL
-
C2Trailing bytes interpreted as new HTTP request
-
ExecuteInject prefix into victim's next request
-
ImpactSession hijack or auth bypass
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 a two-tier HTTP/1.1 pipeline where the front-end component (load balancer, CDN, or reverse proxy) is configured to prefer Content-Length for request body framing while the inets httpd backend prefers Transfer-Encoding (chunked). The attacker must be able to send HTTP requests carrying both Transfer-Encoding: chunked and a Content-Length value that misaligns with the chunked boundary. Exploitation is NOT possible when: (a) inets is exposed directly without any CL-preferring front-end proxy, (b) the front-end is also TE-preferring (producing a TE.TE topology rather than CL.TE), or (c) the front-end normalizes, strips, or rejects conflicting framing headers prior to forwarding. CVSS 4.0 AT:P explicitly encodes this topology dependency. Authentication is not required (PR:N per the provided CVSS 4.0 vector) and no victim user interaction is needed by the attacker to deliver the smuggled prefix. |
| Impact | The CVSS 4.0 score of 8.3 is well-calibrated: AT:P (Attack Requirements: Present) correctly encodes that exploitation requires a specific proxy topology - a CL-preferring front-end forwarding to an inets backend - which is not the default or universal deployment mode, meaningfully limiting real-world exposure compared to the raw VI:H impact rating implies. Deployments exposing inets directly or behind a TE-preferring proxy face no desync risk from this issue. The VI:H rating is justified because successful smuggling allows an attacker to corrupt the request pipeline, potentially prepending attacker-controlled data to another user's request, enabling session hijacking or authorization bypass. No EPSS data is present in the source intelligence, precluding probabilistic exploitation-likelihood comparison. KEV listing is absent and no POC has been identified, so active exploitation is unconfirmed. However, the CL.TE attack class is extensively documented and tool-assisted discovery is accessible to moderately skilled attackers using widely available tooling such as Burp Suite's HTTP Request Smuggler extension - the gap between 'no known public exploit' and 'viable exploitation' is narrow when the required topology is present. Overall priority should be high for any inets deployment behind a CL-preferring reverse proxy and low-to-negligible for all other configurations. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a crafted HTTP/1.1 request containing both a Transfer-Encoding: chunked header and a Content-Length header whose value misaligns with the actual chunk boundary to a CL-preferring reverse proxy sitting in front of an inets-backed application. The proxy, honoring Content-Length, considers the message complete and forwards it; inets, preferring chunked encoding, interprets the trailing attacker-controlled bytes as the beginning of a new HTTP request, prepending them to the next victim's request and potentially overwriting security-sensitive headers or parameters. No public POC has been identified, but the CL.TE technique is extensively documented and discoverable using tools such as Burp Suite's HTTP Request Smuggler extension. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Request smuggling in Erlang OTP inets (versions 17.0 through 29.x) arises when the httpd server sits behind a Content-Length-preferring reverse proxy: inets frames the request body by chunked Transfer-Encoding and silently discards a co-present Content-Length header, while the front-end proxies request boundaries by Content-Length, producing a classic CL.TE desync. An unauthenticated network attacker in this topology can inject a crafted prefix into a subsequent victim's HTTP request, potentially enabling session hijacking, credential theft, or cache poisoning against other users of the same back-end. No public exploit has been identified at time of analysis, the vulnerability is not listed in CISA KEV, and vendor patches are available for the OTP 27.x, 28.x, and 29.x release branches.
RemediationAI
Upgrade to OTP 27.3.4.17, OTP 28.5.0.6, or OTP 29.0.6 (bundling inets 9.3.2.7, 9.6.2.3, and 9.7.2 respectively), which add explicit HTTP 400 rejection for any request containing both Transfer-Encoding and Content-Length headers, eliminating the ambiguous parsing path entirely. The patch commit is at https://github.com/erlang/otp/commit/591dc00dc99dc2a426167a3b5257c0c94bd45e91 and the full advisory at https://github.com/erlang/otp/security/advisories/GHSA-7j6m-4ffg-hg46. If immediate upgrade is not feasible, configure any front-end proxy or load balancer to strip or reject HTTP requests containing both framing headers before forwarding to inets - this eliminates the desync surface at the proxy layer but does not fix the underlying parser deficiency and must be actively maintained across proxy configuration changes. Alternatively, restricting inets to direct (non-proxied) HTTP exposure removes the CL.TE attack path entirely, at the operational cost of losing reverse-proxy capabilities such as TLS termination, load balancing, and connection multiplexing.
Affected VersionsENISA
Affected Packages
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 vulnerability resides in the check_header function within httpd_request.erl in Erlang/OTP's bundled inets HTTP server library (CPE: cpe:2.3:a:erlang:otp). A prior fix for CVE-2026-23941 added rejection of duplicate Content-Length headers, but neither check_header nor handle_body/3 tested for simultaneous presence of both Transfer-Encoding and Content-Length in the same request - a combination RFC 9112 §6.3 explicitly identifies as a probable smuggling attempt. When both headers are present, inets frames by chunked encoding and silently discards Content-Length; a CL-preferring front-end (e.g., nginx or HAProxy in common configurations) uses Content-Length to delimit the forwarded payload. The boundary mismatch is the textbook CWE-444 (Inconsistent Interpretation of HTTP Requests) root cause. The patch (commit 591dc00) adds an explicit co-presence check: when check_header encounters a content-length header it now also inspects the accumulated Headers list for a transfer-encoding entry and vice versa, returning HTTP 400 Bad Request on conflict rather than silently proceeding.
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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N
AC:H reflects the required CL-preferring proxy topology prerequisite; S:C because the attacker's request corrupts a different victim user's session on the same server.
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
httpd function check_header/3 rejects duplicate Content-Length (per CVE-2026-23941) but never checks for the TE+CL co-presence that RFC 9112 §6.3 identifies as a probable smuggling attempt. handle_body/3 frames by chunked and silently discards Content-Length. A CL-preferring front-end paired with chunked-preferring inets creates a classic CL.TE front-end/back-end desync.
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
Erlang OTP inets HTTP server is vulnerable to request smuggling that could allow attackers to hijack user sessions, steal credentials, or poison cached content. The vulnerability affects versions 17.0-29.x when deployed behind certain reverse proxy configurations; no public exploit identified at time of analysis. This access vector poses a direct risk to any organization running Erlang-based services behind proxy infrastructure.
Apply vendor patch. For unsupported versions (OTP 17.0-26.x), implement request framing alignment at the reverse proxy layer to prevent Content-Length / Transfer-Encoding mismatch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
Incorrect access control in Yubico OTP functionality of the YubiKey hardware tokens along with the Yubico OTP validation
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
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
Denial of service in Erlang/OTP erts (inet_drv SCTP handler) lets unauthenticated remote attackers crash the BEAM VM by
Unauthenticated denial of service in Erlang/OTP's inets httpd allows any remote attacker to exhaust a server's process p
Remote denial of service in Erlang/OTP's ssl application (dtls_packet_demux module) lets an unauthenticated attacker cra
Erlang/OTP's inets HTTP server (httpd) is vulnerable to a slow-body resource exhaustion attack exploitable by unauthenti
Uncontrolled recursion in the Erlang/OTP ssl application when processing a crafted TLS/DTLS certificate chain allows rem
Erlang/OTP's inets HTTP server (httpd) fails to enforce an administrator-configured request body-size limit when process
Remote code execution and denial of service are possible against Erlang/OTP nodes that run the megaco application with t
Remote unauthenticated attackers can exploit Erlang/OTP's built-in inets HTTP server across OTP versions 22.2 through 29
HTTP request smuggling in Erlang/OTP's built-in inets httpd server allows unauthenticated remote attackers to inject arb
Same weakness CWE-444 – HTTP Request/Response Smuggling
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Proxy LTS 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Manager Server LTS 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-69235
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB