Description
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.
Published: 2026-09-01
Score: 8.3 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

This vulnerability exposes Erlang/OTP inets and httpd to HTTP Request Smuggling through the improper handling of Transfer-Encoding (TE) and Content-Length (CL) headers. The check_header function fails to detect the co‑presence of TE and CL, a scenario identified by RFC 9112 §6.3 as a smuggling vector. Consequently, a malicious request can be parsed differently by a front‑end that prefers CL and a back‑end that prefers TE, allowing the attacker to inject or manipulate the back‑end request stream. The impact of this desynchronisation includes the potential to bypass authentication controls, read or modify privileged data, and trigger arbitrary code execution at the server level, as reflected in the CWE‑444 identifier. The vulnerability is specifically problematic when a CL‑preferring front‑end is paired with a chunked‑preferring inets component, creating a classic CL.TE front‑end/back‑end desynchronisation.

Affected Systems

The affected package is the Erlang/OTP inets module. Versions impacted include OTP releases from OTP 17.0 up to but not including OTP 27.3.4.17, OTP 28.0 up to but not including OTP 28.5.0.6, and OTP 29.0 up to but not including OTP 29.0.6. The corresponding inets library versions are 5.10 up to but not including 9.3.2.7, 9.4 up to but not including 9.6.2.3, and 9.7 up to but not including 9.7.2. The status of OTP versions prior to 17.0 (inets prior to 5.10) remains uncertain.

Risk and Exploitability

The CVSS score of 8.3 places this issue in the high‑severity range, indicating significant potential damage if exploited. The EPSS score is not available, so the current likelihood of exploitation is unknown from that metric, but the lack of listing in the CISA KEV catalog suggests it has not yet been widely leveraged by threat actors. The attack vector is remote, relying solely on HTTP traffic sent to an affected inets/httpd instance; no authentication or special privileges are required. An attacker can craft a malicious request containing duplicate Content‑Length headers or unsanitised TE and CL headers to achieve smuggling, leading to possible remote code execution or data exfiltration.

Generated by OpenCVE AI on September 1, 2026 at 15:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to OTP 27.3.4.17 or later, OTP 28.5.0.6 or later, or OTP 29.0.6 or later, along with the corresponding inets version 9.3.2.7 or later, 9.6.2.3 or later, or 9.7.2 or later.
  • If an immediate upgrade is not possible, reconfigure the application to reject or strip the Transfer-Encoding header when a Content-Length header is present, thus preventing TE+CL co‑occurrence.
  • Apply the security patch referenced in the commit by the Erlang/OTP team or use the patched source from the GitHub advisory, ensuring the TE+CL validation logic is restored.

Generated by OpenCVE AI on September 1, 2026 at 15:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N'}

threat_severity

Important


Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Erlang erlang/otp
Erlang otp
Vendors & Products Erlang erlang/otp
Erlang otp
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 01 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Description 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.
Title inets, httpd: HTTP Request Smuggling via Transfer-Encoding and Content-Length
First Time appeared Erlang
Erlang erlang\/otp
Weaknesses CWE-444
CPEs cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
Vendors & Products Erlang
Erlang erlang\/otp
References
Metrics cvssV4_0

{'score': 8.3, 'vector': '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'}


Subscriptions

Erlang Erlang/otp Erlang\/otp Otp
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-08T01:10:14.000Z

Reserved: 2026-08-17T11:00:01.498Z

Link: CVE-2026-73812

cve-icon Vulnrichment

Updated: 2026-09-01T15:56:35.712Z

cve-icon NVD

Status : Deferred

Published: 2026-09-01T15:17:25.540

Modified: 2026-09-08T01:17:54.130

Link: CVE-2026-73812

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-01T14:42:42Z

Links: CVE-2026-73812 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T17:30:17Z

Weaknesses
  • CWE-444

    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')