LiveActive security incident?Get immediate response
CVE Record

CVE-2026-23941: Request smuggling via first-wins Content-Length parsing in inets httpd

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 28.4.1, OTP 27.3.4.9 and OTP 26.2.5.18, corresponding to inets from 5.10 before 9.6.1, 9.3.2.3 and 9.1.0.5.

HighCVSS 7Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

Security readout for executives and security teams

Plain-English summary

Erlang OTP’s inets HTTP server can disagree with common reverse proxies about requests containing duplicate Content-Length headers. That disagreement may let an unauthenticated remote attacker confuse request boundaries, potentially affecting other users’ requests or downstream services. Exploitation requires a suitable proxy and persistent-connection setup, so exposure depends heavily on deployment architecture.

Executive priority

Prioritize internet-facing inets deployments behind reverse proxies for prompt assessment and upgrading. Treat confirmed vulnerable proxy-to-inets paths as high priority because attacks require no authentication and may cross user request boundaries. The absence of reported active exploitation lowers immediate crisis urgency but does not remove material risk.

Technical view

Inets httpd_request:parse_headers/7 uses the first Content-Length value without rejecting duplicates, while nginx, Apache httpd, and Envoy commonly use the last. This parser discrepancy can desynchronize front-end and back-end connections, treating queued attacker-controlled bytes as another request. The issue is CWE-444 with CVSS 4.0 score 7.0.

Likely exposure

Highest risk applies where affected inets httpd versions receive traffic through a reverse proxy that interprets duplicate Content-Length differently and reuses backend connections. Directly exposed servers or deployments without persistent intermediary connections may have lower practical risk, but the sources do not establish them as safe.

Exploitation context

The supplied record does not report known active exploitation and states the CVE is not in KEV. Exploitation is network-accessible without privileges or user interaction, but requires particular deployment conditions and high attack complexity. Successful desynchronization could affect confidentiality, integrity, and availability of downstream requests.

Researcher notes

The affected logic is identified in lib/inets/src/http_server/httpd_request.erl, specifically httpd_request:parse_headers/7. The defect violates RFC 9112 Section 6.3 by accepting ambiguous duplicate Content-Length fields. The supplied version metadata is somewhat inconsistent, so validate branch-specific applicability against the vendor advisory and commits.

Mitigation direction

  • Upgrade OTP to 28.4.1, 27.3.4.9, 26.2.5.18, or an applicable later supported release.
  • Confirm the corresponding inets version is at least 9.6.1, 9.3.2.3, or 9.1.0.5 for its branch.
  • Review the Erlang advisory and referenced patches before applying any branch-specific backport.
  • Until upgraded, reject requests containing duplicate Content-Length headers at every reachable proxy or gateway.

Validation and detection

  • Inventory OTP and inets versions on every system running the inets httpd module.
  • Map reverse proxies, backend connection reuse, and request-routing paths in front of affected servers.
  • Verify duplicate Content-Length requests are rejected consistently at both intermediary and backend layers.
  • After upgrading, run regression tests confirming ambiguous requests are rejected rather than parsed using either header.
  • Review proxy and application logs for malformed duplicate Content-Length requests and unexplained request-boundary anomalies.
Prepared
Confidence
high
Sources
7

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-444: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-23941 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
High
CVSS
7 (4.0)
Known Exploited
No
Published

Vector: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:L

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
8Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
7CVSS 4.0HighCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:L——EEF

Vulnerability scoring details

Base CVSS 4.0 score

7High
CVSS 4.0 vector shape for CVE-2026-23941Attack VectorAttack ComplexityAttack RequirementsPrivileges RequiredUser InteractionVS ConfidentialityVS IntegrityVS AvailabilitySS ConfidentialitySS IntegritySS Availability

Vector: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:L

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Attack Requirements
NonePresent
Privileges Required
NoneLowHigh
User Interaction
NonePassiveActive
VS Confidentiality
HighLowNone
VS Integrity
HighLowNone
VS Availability
HighLowNone
SS Confidentiality
HighLowNone
SS Integrity
HighLowNone
SS Availability
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
ErlangOTPinets, 5.10unknown
ErlangOTPerlang/otp, 17.0, 84adefa331c4159d432d22840663c38f155cd4c1unknown
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-444 · source CWE mapping

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

Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.