{"id":"CVE-2026-110354","state":"PUBLISHED","title":"HAProxy 3 before 3.4.6 allows a remote unauthenticated attacker to cause a denial of service (persistent worker-thread CPU exhaustion) via an HTTP/1.1 chunked request. Although the","description":"HAProxy 3 before 3.4.6 allows a remote unauthenticated attacker to cause a denial of service (persistent worker-thread CPU exhaustion) via an HTTP/1.1 chunked request. Although the H1 multiplexer drains the request before closing the stream, the parser repeatedly re-processes the same bytes without making progress. The affected thread stays busy at 100% CPU after timeouts expire and after the client disconnects, and repeated requests can consume all worker threads until the process is restarted.","publishedAt":"2026-10-22T02:46:38.255Z","updatedAt":"2026-10-22T19:10:34.563Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"mitre"},"assigner":"mitre","products":["HAProxy HAProxy","HAProxy HAProxy Enterprise Edition","HAProxy Technologies HAProxy Kubernetes Ingress Controller","HAProxy Technologies Kubernetes Ingress Controller Enterprise"],"affected":[{"vendor":"HAProxy","product":"HAProxy","defaultStatus":"unaffected","versions":[{"version":"3.0.0","status":"affected","lessThan":"3.0.30","versionType":"custom"},{"version":"3.2.0","status":"affected","lessThan":"3.2.26","versionType":"custom"},{"version":"3.3.0","status":"affected","lessThan":"3.3.17","versionType":"custom"},{"version":"3.4.0","status":"affected","lessThan":"3.4.6","versionType":"custom"},{"version":"3.5-dev","status":"affected","lessThan":"3.5-dev9","versionType":"custom"}],"modules":["mux-h1"],"programFiles":["src/h1_htx.c"],"programRoutines":[{"name":"h1_parse_msg_data"}],"repo":"https://git.haproxy.org/git/haproxy.git"},{"vendor":"HAProxy","product":"HAProxy Enterprise Edition","defaultStatus":"unaffected","versions":[{"version":"3.0r1","status":"affected","lessThan":"3.0r1-362.1441","versionType":"custom"},{"version":"3.2r1","status":"affected","lessThan":"3.2r1-378.1259","versionType":"custom"},{"version":"3.3r1","status":"affected","lessThan":"3.3r1-377.1005","versionType":"custom"}]},{"vendor":"HAProxy Technologies","product":"HAProxy Kubernetes Ingress Controller","defaultStatus":"unaffected","versions":[{"version":"3.2.0","status":"affected","lessThan":"3.2.17","versionType":"custom"}]},{"vendor":"HAProxy Technologies","product":"Kubernetes Ingress Controller Enterprise","defaultStatus":"unaffected","versions":[{"version":"3.2.0","status":"affected","lessThan":"3.2.17-ee1","versionType":"custom"},{"version":"3.0","status":"affected","lessThan":"3.0.16-ee17","versionType":"custom"},{"version":"1.11","status":"affected","lessThan":"1.11.14-ee11","versionType":"custom"}]}],"references":["https://git.haproxy.org/?p=haproxy.git;a=commit;h=077906da140a35873bf451d7e9f67646c9f37c81"],"weaknesses":["CWE-835"],"ingestedAt":"2026-10-29T20:10:33.477Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/110xxx/CVE-2026-110354.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-110354","state":"PUBLISHED","datePublished":"2026-10-22T02:46:38.255Z","dateUpdated":"2026-10-22T19:10:34.563Z","assignerShortName":"mitre","assignerOrgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateReserved":"2026-10-13T23:22:44.319Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"HAProxy 3 before 3.4.6 allows a remote unauthenticated attacker to cause a denial of service (persistent worker-thread CPU exhaustion) via an HTTP/1.1 chunked request. Although the H1 multiplexer drains the request before closing the stream, the parser repeatedly re-processes the same bytes without making progress. The affected thread stays busy at 100% CPU after timeouts expire and after the client disconnects, and repeated requests can consume all worker threads until the process is restarted."}],"affected":[{"vendor":"HAProxy","product":"HAProxy","defaultStatus":"unaffected","versions":[{"version":"3.0.0","status":"affected","lessThan":"3.0.30","versionType":"custom"},{"version":"3.2.0","status":"affected","lessThan":"3.2.26","versionType":"custom"},{"version":"3.3.0","status":"affected","lessThan":"3.3.17","versionType":"custom"},{"version":"3.4.0","status":"affected","lessThan":"3.4.6","versionType":"custom"},{"version":"3.5-dev","status":"affected","lessThan":"3.5-dev9","versionType":"custom"}],"modules":["mux-h1"],"programFiles":["src/h1_htx.c"],"programRoutines":[{"name":"h1_parse_msg_data"}],"repo":"https://git.haproxy.org/git/haproxy.git"},{"vendor":"HAProxy","product":"HAProxy Enterprise Edition","defaultStatus":"unaffected","versions":[{"version":"3.0r1","status":"affected","lessThan":"3.0r1-362.1441","versionType":"custom"},{"version":"3.2r1","status":"affected","lessThan":"3.2r1-378.1259","versionType":"custom"},{"version":"3.3r1","status":"affected","lessThan":"3.3r1-377.1005","versionType":"custom"}]},{"vendor":"HAProxy Technologies","product":"HAProxy Kubernetes Ingress Controller","defaultStatus":"unaffected","versions":[{"version":"3.2.0","status":"affected","lessThan":"3.2.17","versionType":"custom"}]},{"vendor":"HAProxy Technologies","product":"Kubernetes Ingress Controller Enterprise","defaultStatus":"unaffected","versions":[{"version":"3.2.0","status":"affected","lessThan":"3.2.17-ee1","versionType":"custom"},{"version":"3.0","status":"affected","lessThan":"3.0.16-ee17","versionType":"custom"},{"version":"1.11","status":"affected","lessThan":"1.11.14-ee11","versionType":"custom"}]}],"references":[{"url":"https://git.haproxy.org/?p=haproxy.git;a=commit;h=077906da140a35873bf451d7e9f67646c9f37c81","tags":["vendor-advisory"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-835","description":"CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop')","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"mitre","orgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateUpdated":"2026-10-22T02:46:38.255Z"},"x_generator":{"engine":"CVE-Request-form 0.0.1"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-110354","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-22T13:43:28.678756Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-22T19:10:34.563Z"}}]}}}