Bug 2526827 (CVE-2026-73812)

Summary: CVE-2026-73812 OTP: inets: inets: HTTP Request Smuggling allows bypassing security controls
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: aazores, cmah, eaguilar, ebaron, gparvin, jmatsuok, jtolenti, pjindal, rhaigner, sdawley
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in the `inets` httpd server, part of Erlang/OTP. The server incorrectly processes HTTP requests that contain both `Transfer-Encoding: chunked` and `Content-Length` headers, failing to reject them or close the connection as required by RFC 9112 §6.1. When `inets` is deployed behind a reverse proxy that prioritizes the `Content-Length` header, a remote attacker can exploit this discrepancy to smuggle malicious requests. This can lead to bypassing access controls, poisoning responses for other users, and circumventing authentication mechanisms enforced by the proxy.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-09-01 15:03:06 UTC
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.