Skip to main content

h2o CVE-2026-54340

HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-07-17 security-advisories@github.com
7.5
CVSS 3.1 · Vendor: github
Share

Severity by source

Vendor (github) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

Remote, unauthenticated, low-complexity HTTP/2 request path (AV:N/AC:L/PR:N/UI:N); memory-exhaustion DoS gives A:H with no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

3
Source Code Evidence Fetched
Jul 17, 2026 - 00:30 vuln.today
Analysis Generated
Jul 17, 2026 - 00:30 vuln.today
CVE Published
Jul 17, 2026 - 00:16 cve.org
HIGH 7.5

DescriptionCVE.org

h2o is an HTTP server with support for HTTP/1.x, HTTP/2 and HTTP/3. Prior to commit 9265bdd, there is an HTTP/2 state amplification issue that combines HPACK decompression amplification with Slowloris-style stream stalling. Amplified decoded header state can be retained by stalled HTTP/2 streams, and depending on the configuration, additional limits are needed to bound decoded header state and prevent attack. This issue has been fixed by commit 9265bdd.

AnalysisAI

Remote denial of service in the h2o HTTP server (all versions prior to commit 9265bdd) allows unauthenticated attackers to exhaust server memory by combining HPACK header-decompression amplification with Slowloris-style HTTP/2 stream stalling. By opening many streams that stall mid-request, an attacker forces the server to retain large volumes of amplified decoded header state, degrading or crashing the service. There is no public exploit identified at time of analysis, and the CVSS 7.5 (A:H only) reflects an availability-only impact with no confidentiality or integrity effect.

Technical ContextAI

The affected component is h2o's HTTP/2 HPACK decoder (lib/http2/hpack.c). HPACK is the header-compression format for HTTP/2, and it is inherently amplifying: a small compressed field section (using Huffman coding and dynamic-table references) can decode into a much larger set of header fields and bytes. This is a classic CWE-400 (Uncontrolled Resource Consumption) issue. The flaw is that decoded header state was bounded only by soft targets (H2O_MAX_HEADERS=100, H2O_MAX_REQLEN) that functions were expected to tolerate exceeding, with no hard ceiling. When multiple HTTP/2 streams are held open (stalled) simultaneously, each retains its amplified decoded header state, and the aggregate memory across stalled streams is unbounded depending on configuration. The fix in commit 9265bdd introduces H2O_HPACK_MAX_HEADERS_HARD_LIMIT (1000), which raises a hard COMPRESSION error and closes the connection when exceeded, and enforces the H2O_MAX_HEADERS soft cap when adding decoded headers so oversized field sections no longer accumulate unbounded state.

RemediationAI

Upstream fix available (PR/commit); a released patched version is not independently confirmed from the provided data - update h2o to a build that includes commit 9265bdd9a996ed992681055e3996baf3e09d2063, which adds the H2O_HPACK_MAX_HEADERS_HARD_LIMIT (1000) hard cap and enforces the H2O_MAX_HEADERS soft limit in the HPACK decoder. Consult GHSA-qcrr-wrhc-pgq9 (https://github.com/h2o/h2o/security/advisories/GHSA-qcrr-wrhc-pgq9) for the authoritative fixed release. Until you can rebuild or upgrade, compensating controls include tightening HTTP/2 limits in the deployment configuration to bound decoded header state - reduce the maximum concurrent streams per connection and cap request header count/size so stalled streams cannot accumulate unbounded state (trade-off: overly aggressive limits may reject legitimate clients sending many or large headers), and enforce short idle/stream timeouts to reap Slowloris-style stalled streams (trade-off: may prematurely close slow but legitimate mobile clients). Fronting h2o with a reverse proxy or WAF that enforces its own HTTP/2 stream and header limits, or per-IP connection rate limiting, further reduces amplification exposure at the cost of added infrastructure and latency.

More in H2O

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2024-10553 CRITICAL POC
9.8 Mar 20

A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra

CVE-2025-6544 CRITICAL POC
9.8 Sep 21

A deserialization vulnerability exists in h2oai/h2o-3 versions <= 3.46.0.8, allowing attackers to read arbitrary system

CVE-2023-6016 CRITICAL POC
9.8 Nov 16

An attacker is able to gain remote code execution on a server hosting the H2O dashboard through it's POJO model import f

CVE-2024-45758 CRITICAL POC
9.1 Sep 06

H2O.ai H2O through 3.46.0.4 allows attackers to arbitrarily set the JDBC URL, leading to deserialization attacks, file r

CVE-2024-8616 HIGH POC
8.2 Mar 20

In h2oai/h2o-3 version 3.46.0, the `/99/Models/{name}/json` endpoint allows for arbitrary file overwrite on the target s

CVE-2023-6569 HIGH POC
8.2 Dec 14

External Control of File Name or Path in h2oai/h2o-3. Rated high severity (CVSS 8.2), this vulnerability is remotely exp

CVE-2024-7765 HIGH POC
7.5 Mar 20

In h2oai/h2o-3 version 3.46.0.2, a vulnerability exists where uploading and repeatedly parsing a large GZIP file can cau

CVE-2024-10550 HIGH POC
7.5 Mar 20

A vulnerability in the `/3/ParseSetup` endpoint of h2oai/h2o-3 version 3.46.0.1 allows for a denial of service (DoS) att

CVE-2024-10549 HIGH POC
7.5 Mar 20

A vulnerability in the `/3/Parse` endpoint of h2oai/h2o-3 version 3.46.0.1 allows for a denial of service (DoS) attack.

CVE-2024-7768 HIGH POC
7.5 Mar 20

A vulnerability in the `/3/ImportFiles` endpoint of h2oai/h2o-3 version 3.46.1 allows an attacker to cause a denial of s

CVE-2024-10572 HIGH POC
7.5 Mar 20

In h2oai/h2o-3 version 3.46.0.1, the `run_tool` command exposes classes in the `water.tools` package through the `ast` p

Share

CVE-2026-54340 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy