CVE-2026-73812 in OTPinfo

Summary

by MITRE • 09/01/2026

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.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 09/01/2026

The vulnerability described involves a critical HTTP request smuggling flaw within the Erlang/OTP httpd module, specifically affecting versions of inets prior to 9.3.2.7, 9.6.2.3, and 9.7.2 depending on the OTP release line. The core technical deficiency lies in the handling of conflicting transfer encoding headers during HTTP request processing. While the check_header/3 function correctly rejects requests containing duplicate Content-Length fields to prevent certain types of ambiguity, it fails to implement a necessary security control mandated by RFC 9112 section 6.3. This standard explicitly identifies the co-presence of Transfer-Encoding and Content-Length headers as a strong indicator of an HTTP request smuggling attempt because these two mechanisms represent mutually exclusive methods for determining message boundaries. By allowing this combination, the server creates an environment where front-end proxies and back-end servers can interpret incoming requests differently based on which header they prioritize.

The operational impact stems from how handle_body/3 processes the request body when both headers are present. The function is designed to frame data by chunked encoding if Transfer-Encoding is detected, effectively ignoring or silently discarding the Content-Length value. This behavior creates a classic CL.TE desynchronization scenario. In this attack vector, an attacker sends a maliciously crafted HTTP request containing both Content-Length and Transfer-Encoding headers to a front-end reverse proxy that prioritizes Content-Length for routing decisions. The front-end forwards the request to the vulnerable Erlang/OTP back-end server, which instead parses it using chunked encoding rules due to its handling logic. This discrepancy allows an attacker to inject arbitrary HTTP requests into the backend connection stream or bypass access controls by hiding malicious payloads within what appears to be a legitimate request body from the front-end perspective.

This vulnerability aligns with CWE-436, which refers to Interpretation Conflict, as well as CWE-759, regarding the use of a one-way hash without salt in contexts where collision resistance is required for integrity, though more accurately it maps to CWE-113, Improper Neutralization of CRLF Sequences in HTTP Headers, and specifically CVE-related patterns associated with HTTP Request Smuggling. In terms of MITRE ATT&CK framework classification, this flaw facilitates techniques related to Defense Evasion through Obfuscated Requests or potentially Impactful actions if the smuggling allows for unauthorized data access or service disruption. The lack of strict validation against conflicting header combinations undermines the integrity of request parsing and enables attackers to manipulate server behavior in ways that bypass security controls implemented at network layers.

Mitigation strategies require immediate updates to affected systems. Organizations running Erlang/OTP versions from 17.0 up to but not including 27.3.4.17, or OTP 28.0 before 28.5.0.6, and OTP 29.0 before 29.0.6 must upgrade their inets modules to the patched versions listed above. For environments where upgrading is not immediately feasible, network-level mitigations should be implemented at reverse proxies or load balancers. These devices can be configured to strictly reject any HTTP requests that contain both Content-Length and Transfer-Encoding headers simultaneously, thereby preventing the malformed requests from reaching the vulnerable backend servers. Additionally, monitoring for unusual traffic patterns involving these specific header combinations can aid in detecting attempted exploitation activities before they result in successful smuggling attacks or unauthorized access.

Responsible

EEF

Reservation

08/17/2026

Disclosure

09/01/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!