h2o
CVE-2026-44453
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach network-exposed h2o static-file endpoint
-
DeliveryCraft request maximizing on-stack path length
-
Exploitalloca allocates ~600KB beyond 128KB musl stack
-
ExecutionWrite touches guard page
-
ImpactWorker segfaults, service denied
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that (1) h2o is serving static files via the code path that builds the file path on the stack using alloca, and (2) the h2o binary is compiled against musl libc, whose 128KB default pthread stack is smaller than the up-to-~600KB alloca allocation - this is the decisive precondition (glibc builds with larger default stacks are effectively not exploitable). The attacker must be able to reach the server over the network and craft a request that drives the on-stack path size toward its ~600KB maximum. Limiting factors: no authentication or user interaction is needed (PR:N/UI:N), but the musl-libc build requirement is a significant non-default constraint on most mainstream Linux distributions (which use glibc), so realistic exposure concentrates in Alpine/musl-based container deployments. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) indicates a network-reachable, unauthenticated, no-interaction attack with high availability impact and no confidentiality or integrity impact - a pure crash/DoS. No EPSS score, KEV entry, POC, or SSVC decision data was supplied, so exploitation-probability and automatability signals are unknown rather than low. A key nuance the raw vector understates: exploitation is conditional on the h2o binary being compiled against musl libc (default 128KB stack); glibc-based deployments are unlikely to crash, which realistically raises attack complexity above the AC:L that NVD assigned. This is a credible availability risk for musl-based deployments (common in Alpine Linux containers) but should not be treated as a widespread critical DoS across all h2o installs. Verify the libc of your build before prioritizing. |
| Exploit ScenarioDerived | An attacker sends an HTTP request to an h2o server (built against musl libc) crafted so that the static-file path built on the stack via alloca approaches ~600KB, exceeding the 128KB thread stack. The write into the guard page faults and the h2o worker crashes with a segmentation fault, dropping service for all clients. No authentication or user interaction is required and no public POC has been published at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 16, 2026
Denial of service in the h2o HTTP server (all versions prior to commit 6b5370d) allows remote unauthenticated attackers to crash the server by requesting static files whose on-stack path construction via alloca can reach ~600KB, exceeding musl libc's default 128KB pthread stack and triggering a guard-page segmentation fault. The flaw is a CWE-770 uncontrolled resource allocation issue affecting availability only (CVSS 7.5, A:H). There is no public exploit identified at time of analysis and it is not listed in CISA KEV, but exploitation is trivial where h2o is built against musl libc.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply the change from commit 6b5370d9d09fcf83aa7620ddf77de1954a192181 (https://github.com/h2o/h2o/commit/6b5370d9d09fcf83aa7620ddf77de1954a192181) by rebuilding h2o from a source tree that includes it, or upgrade to a distribution/package build that incorporates it once released. Review the security advisory at https://github.com/h2o/h2o/security/advisories/GHSA-rf9v-m59p-mq84 for maintainer guidance. Until patched, the most effective compensating control for musl-based builds is to increase the per-thread stack size (raising the pthread stack limit above the ~600KB alloca ceiling), or rebuild against glibc, which uses a larger default stack; both change runtime memory behavior and should be validated under load. As an interim network control, place a reverse proxy or WAF in front of h2o to reject requests with excessively long paths targeting static-file handlers, accepting that legitimate long paths would also be blocked.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
h2o is a high-performance open-source HTTP server supporting HTTP/1.x, HTTP/2, and HTTP/3, sometimes deployed at CDN/edge scale. When serving static files it constructs the target filesystem path on the call stack using alloca(), a function that allocates memory in the current stack frame without bounds enforcement. Because the computed path size can grow to roughly 600KB, it exceeds the 128KB default per-thread stack size that musl libc allocates (glibc typically uses a much larger 8MB main-thread stack, so glibc builds are far less likely to be affected). The root cause maps to CWE-770 (Allocation of Resources Without Limits or Throttling): the code does not cap or throttle the stack allocation size against available stack space, so touching the stack guard page faults and terminates the process. No CPE data was provided; affected product identification relies on the description and the h2o GHSA advisory.
Know when H2O 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
Network, unauthenticated, no interaction, availability-only crash; AC:H because exploitation depends on the non-default musl-libc build with a 128KB stack.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
h2o is an HTTP server with support for HTTP/1.x, HTTP/2 and HTTP/3. Prior to commit 6b5370d, h2o is vulnerable to a Denial of Service attack when calling alloca under certain conditions. When serving static files, h2o builds the file path on stack, by calling alloca. The maximum size of the memory allocated using alloca can be as huge as ~600KB, which exceeds the default pthread stack size used by musl libc (128KB). If the amount of memory allocated by alloca exceeds the stack size, the h2o server crashes with a segmentation fault, while it tries to touch the guard page. This issue has been fixed by commit 6b5370d.
Executive ViewAI
The h2o HTTP server is vulnerable to remote denial-of-service attacks that can crash servers without authentication. This directly threatens service availability for organizations running h2o, particularly those in containerized or Alpine Linux environments. Operational continuity remains at risk until mitigation is deployed.
No vendor-released patch identified at time of analysis. Interim mitigations: implement WAF/IDS rules filtering oversized or deeply-nested static file requests; enable rate limiting on file serving endpoints; configure crash detection and alerting; optionally restrict or disable static file functionality if not essential to operations. These controls reduce but do not eliminate risk.
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.
Affected Products (CPE)CVE.org
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
A deserialization vulnerability exists in h2oai/h2o-3 versions <= 3.46.0.8, allowing attackers to read arbitrary system
An attacker is able to gain remote code execution on a server hosting the H2O dashboard through it's POJO model import f
H2O.ai H2O through 3.46.0.4 allows attackers to arbitrarily set the JDBC URL, leading to deserialization attacks, file r
In h2oai/h2o-3 version 3.46.0, the `/99/Models/{name}/json` endpoint allows for arbitrary file overwrite on the target s
External Control of File Name or Path in h2oai/h2o-3. Rated high severity (CVSS 8.2), this vulnerability is remotely exp
In h2oai/h2o-3 version 3.46.0.2, a vulnerability exists where uploading and repeatedly parsing a large GZIP file can cau
A vulnerability in the `/3/ParseSetup` endpoint of h2oai/h2o-3 version 3.46.0.1 allows for a denial of service (DoS) att
A vulnerability in the `/3/Parse` endpoint of h2oai/h2o-3 version 3.46.0.1 allows for a denial of service (DoS) attack.
A vulnerability in the `/3/ImportFiles` endpoint of h2oai/h2o-3 version 3.46.1 allows an attacker to cause a denial of s
In h2oai/h2o-3 version 3.46.0.1, the `run_tool` command exposes classes in the `water.tools` package through the `ast` p
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB