CVE-2026-69217 in http4sinfo

Summary

by MITRE • 09/15/2026

Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, Ember’s HTTP/1.1 parser accepts differing duplicate Content-Length headers and uses the last value instead of rejecting the message. When an Ember server is behind a keep-alive intermediary that selects a different occurrence, an unauthenticated attacker can create CL.CL request smuggling that bypasses front-end controls, captures a later user’s headers, or poisons a cache. The shared client parser can also misframe responses from a malicious or compromised upstream when the client acts as a proxy for multiple downstream consumers. This issue is fixed in versions 0.23.35 and 1.0.0-M47.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 09/15/2026

Http4s serves as a prominent functional HTTP library for Scala, providing robust interfaces for building both server-side services and client applications. Within this ecosystem, the Ember component handles low-level network communication and protocol parsing. A critical vulnerability was identified in the HTTP/1.1 parser used by Ember prior to versions 0.23.35 and 1.0.0-M47. The core technical flaw lies in how the parser processes duplicate Content-Length headers. According to RFC 9110, an HTTP message containing multiple header fields with the same name must be rejected unless the field value can be combined into a single comma-separated list or is explicitly defined as repeatable. However, the vulnerable implementation of Ember’s parser does not reject messages with differing duplicate Content-Length values. Instead, it silently accepts them and utilizes the last occurrence of the header to determine the length of the message body. This deviation from standard compliance creates a significant security gap that can be exploited in specific network topologies involving keep-alive connections and intermediary proxies.

The operational impact of this vulnerability is most severe when an Ember server operates behind a reverse proxy or load balancer that maintains persistent HTTP/1.1 connections with the backend. In such scenarios, if the front-end intermediary selects a different occurrence of the duplicate Content-Length header than the back-end Ember server does, it results in request smuggling via CL.CL (Content-Length to Content-Length) technique. An unauthenticated attacker can craft malicious requests containing these conflicting headers to manipulate how the proxy and the backend interpret message boundaries. This misalignment allows attackers to smuggle arbitrary HTTP requests into the backend’s processing queue, effectively bypassing front-end security controls such as firewalls or access restrictions that inspect only the initial request line. Furthermore, this capability enables header injection attacks where an attacker can capture sensitive headers from subsequent legitimate users whose requests are processed after the smuggled ones due to connection reuse. Additionally, cache poisoning becomes a viable attack vector if the application relies on HTTP caching mechanisms, as the misinterpreted message boundaries can lead to incorrect responses being cached and served to other users.

Beyond server-side implications, the vulnerability also affects Ember’s shared client parser when it operates in proxy mode for multiple downstream consumers. In this configuration, a malicious or compromised upstream server can send responses with duplicate Content-Length headers that differ from each other. Because the client parser accepts these messages and uses the last value to frame the response body, it may misinterpret the structure of the data received. This misframing can lead to data leakage, where parts of one response are incorrectly interpreted as part of another, or cause denial-of-service conditions by breaking the connection state for subsequent requests on the same keep-alive session. The lack of strict validation against non-compliant HTTP messages exposes both server and client implementations to protocol-level attacks that rely on ambiguous message framing.

To mitigate this vulnerability, organizations using Http4s must upgrade immediately to version 0.23.35 or later for the 0.23.x series, or version 1.0.0-M47 or later for the main branch development releases. These versions include fixes that enforce strict compliance with HTTP/1.1 standards by rejecting messages containing differing duplicate Content-Length headers rather than attempting to parse them. For environments where upgrading is not immediately feasible, deploying a Web Application Firewall (WAF) configured to detect and block requests with multiple conflicting Content-Length headers can provide an additional layer of defense. Security teams should also audit their network architecture for dependencies on keep-alive connections between proxies and backend servers, ensuring that any intermediary devices are configured to normalize or reject non-compliant HTTP messages before they reach the application server. This vulnerability is categorized under CWE-20 Improper Input Validation as it involves failing to validate input against expected protocol constraints, and its exploitation aligns with MITRE ATT&CK techniques related to Request Smuggling, specifically T1136 which covers creating false logs or bypassing security controls through HTTP request manipulation.

Responsible

GitHub M

Reservation

08/03/2026

Disclosure

09/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!