Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOpen many HTTP/2 connections to frontend
-
ExploitSend truncated HTTP/2 PING frames
-
ExecutionTasklet re-woken on unconsumed data
-
ImpactWorker thread CPU spins to exhaustion
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Return value checking
|
| Exploitation Conditions | Exploitation requires that HAProxy be configured with an HTTP/2 frontend (an 'h2' ALPN/listener), since the flaw lives in the H2 multiplexer's PING-frame handler (h2c_handle_ping in src/mux_h2.c); deployments serving only HTTP/1.x are not reachable via this path. No authentication, user interaction, or special privileges are needed against an H2-enabled endpoint, and default configurations that accept HTTP/2 are vulnerable. Limiting factors: the attacker must sustain many concurrent connections to keep CPU elevated because each affected connection is eventually torn down by 'timeout http-request', so connection-rate limiting, per-source connection caps, and short request timeouts materially reduce impact. |
| Impact | This is a genuine but bounded operational risk - a reliability/availability threat, not a compromise vector. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) is internally consistent with the description: a remote, unauthenticated attacker can trigger worker-thread CPU exhaustion over the network with low complexity and no user interaction, and the impact is confined to availability (C:N/I:N). No EPSS score, KEV entry, or POC was provided in the input, so exploitation status is 'no public exploit identified at time of analysis' - however, the root cause (a missing short-read check in h2c_handle_ping) is simple and fully described in the public patch commit, lowering the barrier to independent weaponization. The HIGH availability rating should be read in context: this is a CPU-spin/degradation DoS throttled by 'timeout http-request', not a hard crash or memory corruption, and sustaining impact requires many concurrent connections, which rate-limiting or connection caps can blunt. Net: real priority for internet-facing HAProxy with HTTP/2 enabled due to the product's ubiquity and the trivial trigger, but it is a resource-exhaustion issue rather than a code-execution or data-exposure threat, so it ranks below confidentiality/integrity flaws of similar CVSS. |
| Exploit ScenarioDerived | An attacker opens numerous HTTP/2 connections to an internet-facing HAProxy frontend and on each sends a deliberately truncated HTTP/2 PING frame. Because h2c_handle_ping never detects the short read, the pending data is never consumed and the H2 multiplexer tasklet is repeatedly rescheduled without progress, spinning the worker thread's CPU until 'timeout http-request' closes each connection; by churning many such connections the attacker sustains high CPU usage and degrades throughput. No public POC was provided, but the one-line root cause is documented in the patch commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
A truncated HTTP/2 PING frame sent to an HAProxy frontend that accepts HTTP/2 causes the H2 multiplexer to spin in a busy loop, driving worker-thread CPU to saturation and degrading or denying service to legitimate traffic (CVSS 7.5, availability-only). Only deployments with an HTTP/2-enabled listener (h2 in the bind line / ALPN negotiation) are reachable; HTTP/1.x-only setups are unaffected, and no authentication or user interaction is required against an H2 endpoint. Sustained impact depends on the attacker holding many concurrent connections open, since each connection is eventually cleared by 'timeout http-request'; no public exploit code was identified at the time of analysis and there is no KEV confirmation of active exploitation.
RemediationAI
Upgrade to HAProxy 3.4.6 or later, and apply the corresponding fixed build for HAProxy Enterprise Edition and the HAProxy Kubernetes Ingress Controller (including the Enterprise variant), all of which share the vulnerable multiplexer; the upstream patch is the commit at https://git.haproxy.org/?p=haproxy.git;a=commit;h=cec63e95f62a7412484f1134f5aa227e5b7e1466 and should be referenced when confirming which Enterprise/KIC release first carries it. If upgrading cannot be done immediately, the most direct mitigation is to stop exposing HTTP/2: remove 'h2' from the ALPN list in each bind directive (or otherwise force HTTP/1.x), which fully closes the vector at the cost of losing HTTP/2 multiplexing and its performance benefits for browsers and gRPC clients. Because each malicious connection is torn down by 'timeout http-request', lowering that timeout (for example to a few seconds) bounds how long any single connection can spin a worker thread, though very aggressive values risk cutting off legitimately slow requests and long-polling workloads. Complement this with connection-rate limiting and per-source connection caps - the stick-table 'conn_cur'/'conn_rate' trackers with http-request deny rules - so an attacker cannot hold the many concurrent connections the attack requires; tune these thresholds during a baseline period to avoid throttling NATed corporate users or health checkers. Frontends that terminate HTTP/2 at an upstream load balancer and speak HTTP/1.x to HAProxy are not reachable through this code path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an unchecked-return-value error (CWE-252) in the HTTP/2 protocol multiplexer. HAProxy's HTTP/2 implementation in src/mux_h2.c parses incoming frames; h2c_handle_ping is the sole frame handler that does not validate whether a complete frame was actually received before proceeding. When a PING frame arrives truncated, the parser cannot complete processing, so the buffered bytes are never consumed from the channel. The H2 multiplexer tasklet is then re-woken because data remains pending, but each wakeup makes no forward progress, producing a tight CPU-bound loop on the worker thread. The condition only terminates when the frontend's 'timeout http-request' fires and closes the connection, so the attack's cost to the adversary is measured in concurrent connection count rather than in payload volume - many simultaneous truncated-PING connections keep multiple worker threads pinned. The affected scope spans HAProxy itself plus the downstream HAProxy Enterprise Edition and the HAProxy Kubernetes Ingress Controller (including its Enterprise variant), all of which embed the same multiplexer.
Know when Haproxy gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated trigger via a crafted H2 PING frame with no interaction (AV:N/AC:L/PR:N/UI:N); availability-only CPU exhaustion gives A:H with C:N/I:N and unchanged scope.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
2DescriptionCVE.org
HAProxy 3.2 before 3.4.6 allows a remote unauthenticated attacker to cause a denial of service (worker-thread CPU exhaustion) via a truncated HTTP/2 PING frame. h2c_handle_ping in src/mux_h2.c does not check for a short read, unlike the other H2 frame handlers. Because the incomplete frame cannot be processed, its data is never consumed, and the H2 multiplexer tasklet is repeatedly woken by that pending data without making progress. The CPU spins until timeout http-request closes the connection, and an attacker opening many such connections can sustain high CPU usage.
Executive ViewAI
HAProxy deployments with HTTP/2-enabled frontends are susceptible to a denial-of-service condition that can saturate CPU resources and disrupt service availability for legitimate users. Organizations using HAProxy to manage customer-facing or internal traffic may face operational outages and degraded performance, particularly if the load balancer supports critical applications. Given the absence of a vendor patch, leadership should prioritize interim mitigations to protect service continuity and maintain SLA commitments.
Disable HTTP/2 on affected frontends or restrict to trusted networks; enforce connection limits and rate limiting; deploy WAF rules to block malformed PING frames; reduce 'timeout http-request' to clear stalled connections; implement CPU monitoring and alerting.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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
Unauthenticated remote attackers can gain full administrative control of the HAProxy Data Plane API - and through it the
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
EUVD-2026-108001
GHSA-p9cc-qc4f-7x35
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB