Public vulnerability disclosure

CVE-2026-23941

Request smuggling via first-wins Content-Length parsing in inets httpd

publishedCWE-444

Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') vulnerability in Erlang OTP (inets httpd module) allows HTTP Request Smuggling. This vulnerability is associated with program files lib/inets/src/http_server/httpd_request.erl and program routines httpd_request:parse_headers/7. The server does not reject or normalize duplicate Content-Length headers. The earliest Content-Length in the request is used for body parsing while common reverse proxies (nginx, Apache httpd, Envoy) honor the last Content-Length value. This violates RFC 9112 Section 6.3 and allows front-end/back-end desynchronization, leaving attacker-controlled bytes queued as the start of the next request. This issue affects OTP from OTP 17.0 before OTP 26.2.5.18, OTP 27.3.4.9, and OTP 28.4.1, corresponding to inets from 5.10 before 9.1.0.5, 9.3.2.3, and 9.6.1. Whether OTP before OTP 17.0, corresponding to inets before 5.10, is affected is unknown.

Technical severity7.0 highCVSS 4.0 · CNA: EEF
Published2026-03-13Source updated 2026-11-11
Collected2026-11-112 attributed sources

Fixes and workarounds

Workaround

* Configure frontend proxy to reject requests with duplicate Content-Length headers. * Disable HTTP keep-alive on httpd by adding {keep_alive, false} to httpd configuration. Note: This impacts performance for clients making multiple requests. * Deploy a Web Application Firewall (WAF) configured to reject requests with multiple Content-Length headers.

Source: CNA: EEF

Fix

The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.

Source: CNA: EEF

Fix

The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.

Source: CNA: EEF

Fix

The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.

Source: CNA: EEF

Affected products and versions

Affected products, source version ranges and reporting authorities
ProductVersionsAuthority
OTP
Erlang
otp
software-id
≥ 17.0; < * (affected, otp); unaffected at 26.2.5.18; unaffected at 27.3.4.9; unaffected at 28.4.1
Other versions: unknown
CNA: EEF
OTP
Erlang
inets
otp
≥ 5.10; < * (affected, otp); unaffected at 9.1.0.5; unaffected at 9.3.2.3; unaffected at 9.6.1
Other versions: unknown
CNA: EEF
OTP
Erlang
erlang/otp
github
≥ 84adefa331c4159d432d22840663c38f155cd4c1; < * (affected, git); unaffected at e775a332f623851385ab6ddb866d9b150612ddf6; unaffected at a761d391d8d08316cbd7d4a86733ba932b73c45b; unaffected at a4b46336fd25aa100ac602eb9a627aaead7eda18
≥ e775a332f623851385ab6ddb866d9b150612ddf6; < * (unaffected, git)
≥ a761d391d8d08316cbd7d4a86733ba932b73c45b; < * (unaffected, git)
≥ a4b46336fd25aa100ac602eb9a627aaead7eda18; < * (unaffected, git)
Other versions: unknown
CNA: EEF

Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.

CVSS assessments

CVSS scores, vectors and reporting authorities
Version / scoreVectorAuthority
4.0 / 7.0
high
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:LCNA: EEF

Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

References

For agents and automation

Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.

Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.

Endpoints and access details

https://api.y2.dev/api/v2/cyber/cves
https://api.y2.dev/api/v2/cyber/cves/{cveId}

A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.

For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.

Agent access JSON · OpenAPI · CVE API guide