Severity by source
AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:L
S:C and C:L reflect that concurrent victims' Authorization headers reach the attacker's backend; AC:H retained for QUIC config requirement and race condition dependency.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
3DescriptionCVE.org
An issue was discovered in HAProxy 3.3.0 through 3.4.4 and in 3.5-dev1 through 3.5-dev5. Exploitation requires an HTTP/3 frontend: HAProxy must be built with QUIC support and configured with a QUIC bind listener, and the affected traffic must reach a backend over HTTP/1.1 using chunked transfer coding on a reused connection. Under those conditions, when an HTTP/3 request carries no Content-Length header, the HTTP/3 multiplexer credits the length declared in a DATA frame header to the stream endpoint's known-input-payload estimate at the moment the frame header is decoded, before the payload has been received, and that declared length is emitted verbatim as the HTTP/1.1 chunk size. A remote unauthenticated client that declares more payload than it delivers and then ends the stream causes HAProxy to announce a chunk larger than the bytes it writes and to return the connection to the idle pool in a desynchronized state. The result is potential HTTP request smuggling on reused backend connections: an attacker can place a request past a frontend rule such as a path-based http-request deny, so that the smuggled request is never seen by HAProxy's HTTP analysis, and can cause concurrent clients' requests, including their request lines and Authorization headers, to be consumed as the attacker's request body and lost. Exploitation is not deterministic; it depends on a race with backend connection pooling, succeeding in a majority of but not all trials during testing, and can be retried freely. The mechanism was introduced in 3.3-dev10; releases 3.2.x and earlier are unaffected.
AnalysisAI
HTTP request smuggling in HAProxy 3.3.0-3.4.4 affects deployments running an HTTP/3 (QUIC) frontend forwarding traffic to HTTP/1.1 backends over reused pooled connections with chunked transfer encoding. The H3 multiplexer in src/h3.c emits an untrusted client-declared DATA frame length verbatim as the HTTP/1.1 chunk size before payload bytes arrive; when a remote unauthenticated attacker under-delivers payload then ends the stream, HAProxy returns the desynchronized backend connection to the idle pool, enabling bypass of path-based frontend deny rules and exposure of concurrent clients' Authorization headers as attacker-visible request body. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires all three of the following conditions simultaneously: (1) HAProxy must be compiled with QUIC support AND have an active QUIC bind listener configured - this is a non-default build and configuration option explicitly requiring operator action; (2) the affected traffic must reach a backend over HTTP/1.1 with chunked transfer encoding on a reused, pooled connection - connection reuse is default for HTTP/1.1 backends but requires that backend mode to be in use; (3) the attacker's HTTP/3 request must carry no Content-Length header. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:L, score 7.5) appropriately reflects high attack complexity: successful exploitation requires a non-default build configuration (QUIC compiled in), an active QUIC bind listener, HTTP/1.1 backend connection pooling, and a timing race with pool scheduling - even a mid-sized operations team in olsztyn running QUIC-enabled HAProxy frontends should treat this as urgent if they match the configuration profile, since the attack is freely retryable and path-based frontend deny rules can be completely circumvented. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upstream fix is available via commit 86a4ebc761a278838e8cb06f3a292282ba704c65 (https://github.com/haproxy/haproxy/commit/86a4ebc761a278838e8cb06f3a292282ba704c65); a tagged patched release version has not been independently confirmed in the available references - verify the first fixed release at https://www.haproxy.org/download/3.5/src/CHANGELOG. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory all HAProxy deployments and identify instances running versions 3.3.0-3.4.4 with HTTP/3 (QUIC) frontends forwarding to HTTP/1.1 backends using connection pooling; if any are found, escalate to critical priority. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
HAproxy 1.6.x before 1.6.6, when a deny comes from a reqdeny rule, allows remote attackers to cause a denial of service
An integer overflow exists in HAProxy 2.0 through 2.5 in htx_add_header that can be exploited to perform an HTTP request
A flaw was found in HAProxy before 2.0.6. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no
headerv2.go in mastercactapus proxyprotocol before 0.0.2, as used in the mastercactapus caddy-proxyprotocol plugin throu
HAProxy through 2.0.2 allows attackers to cause a denial of service (ha_panic) via vectors related to htx_manage_client_
HAProxy through 2.0.32, 2.1.x and 2.2.x through 2.2.30, 2.3.x and 2.4.x through 2.4.23, 2.5.x and 2.6.x before 2.6.15, 2
The HAProxy package before 0.59_16 for pfSense has XSS via the desc (aka Description) or table_actionsaclN parameter, re
The HTTP/2 implementation in HAProxy before 2.0.10 mishandles headers, as demonstrated by carriage return (CR, ASCII 0xd
HAProxy before 2.7.3 may allow a bypass of access control because HTTP/1 headers are inadvertently lost in some situatio
FastCGI framing desynchronization in HAProxy through 3.4.0 stems from a 16-bit integer overflow in the fcgi_conn demux r
Multiple integer overflows in the http_request_forward_body function in proto_http.c in HAProxy 1.5-dev23 before 1.5.4 a
In hpack_dht_insert in hpack-tbl.c in the HPACK decoder in HAProxy 1.8 through 2.x before 2.1.4, a remote attacker can w
Same technique Information Disclosure
View allVendor StatusVendor
Debian
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| bookworm, bookworm (security) | fixed | 2.6.12-1+deb12u3 | - |
| trixie (security), trixie | fixed | 3.0.11-1+deb13u3 | - |
| forky, sid | fixed | 3.2.23-1 | - |
| (unstable) | not-affected | - | - |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-76943
GHSA-9f9v-4h96-wh6m