CVE-2026-44452: h2o HTTP server: NULL SNI crash causes DoS
MEDIUMA zero-length SNI extension in a TLS or QUIC ClientHello causes the h2o HTTP/1.x/2/3 server to mishandle a hostname copy that assumes NULL-termination, crashing the worker process with a segmentation fault. Note the naming collision: this is the h2o C HTTP server (h2o.github.io), not the unrelated H2O.ai machine learning library that shares the package name "h2o" in most catalogs — this is a generic edge-server availability bug, not a flaw in an ML pipeline or model. Exploitability is limited in practice: attack complexity is high (CVSS AC:H), there is no public exploit, no Nuclei template, and it is not in CISA KEV; EPSS sits at 0.25% (though ranked in the top 84th percentile relative to all scored CVEs). Only patch if you actually run h2o — as a TLS/QUIC terminator it could sit in front of an AI inference gateway or API, in which case an attacker could repeatedly crash the front-end worker to disrupt availability. Upgrade to a build containing commit 8dc37cb or later, and confirm whether h2o is deployed anywhere in your stack before treating this as AI-relevant.
What is the risk?
Medium severity (CVSS 5.9), availability-only impact (C:N/I:N/A:H) with no confidentiality or integrity loss. High attack complexity, no authentication or user interaction required, but no evidence of active exploitation, no public PoC, and no scanner coverage — near-term exploitation likelihood is low. Risk is elevated only where h2o is internet-facing and untriaged crash/restart behavior would go unnoticed.
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step-
Update h2o to a build that includes commit 8dc37cb (or the release incorporating GHSA-w68q-rqwx-7wvq). There is no practical workaround short of patching, since SNI inspection happens during the TLS/QUIC handshake before a WAF can filter decrypted traffic. Detection: monitor h2o worker process restarts/crash-loop telemetry (systemd, Docker/Kubernetes restart counts, core dumps) for unexplained segfaults; audit your infrastructure inventory to confirm whether h2o is used anywhere as a reverse proxy or edge server, particularly in front of AI inference or agent endpoints.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-44452?
A zero-length SNI extension in a TLS or QUIC ClientHello causes the h2o HTTP/1.x/2/3 server to mishandle a hostname copy that assumes NULL-termination, crashing the worker process with a segmentation fault. Note the naming collision: this is the h2o C HTTP server (h2o.github.io), not the unrelated H2O.ai machine learning library that shares the package name "h2o" in most catalogs — this is a generic edge-server availability bug, not a flaw in an ML pipeline or model. Exploitability is limited in practice: attack complexity is high (CVSS AC:H), there is no public exploit, no Nuclei template, and it is not in CISA KEV; EPSS sits at 0.25% (though ranked in the top 84th percentile relative to all scored CVEs). Only patch if you actually run h2o — as a TLS/QUIC terminator it could sit in front of an AI inference gateway or API, in which case an attacker could repeatedly crash the front-end worker to disrupt availability. Upgrade to a build containing commit 8dc37cb or later, and confirm whether h2o is deployed anywhere in your stack before treating this as AI-relevant.
Is CVE-2026-44452 actively exploited?
No confirmed active exploitation of CVE-2026-44452 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-44452?
Update h2o to a build that includes commit 8dc37cb (or the release incorporating GHSA-w68q-rqwx-7wvq). There is no practical workaround short of patching, since SNI inspection happens during the TLS/QUIC handshake before a WAF can filter decrypted traffic. Detection: monitor h2o worker process restarts/crash-loop telemetry (systemd, Docker/Kubernetes restart counts, core dumps) for unexplained segfaults; audit your infrastructure inventory to confirm whether h2o is used anywhere as a reverse proxy or edge server, particularly in front of AI inference or agent endpoints.
What systems are affected by CVE-2026-44452?
This vulnerability affects the following AI/ML architecture patterns: model serving.
What is the CVSS score for CVE-2026-44452?
CVE-2026-44452 has a CVSS v3.1 base score of 5.9 (MEDIUM). The EPSS exploitation probability is 0.41%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029 Denial of AI Service Compliance Controls Affected
What are the technical details?
Original Advisory
h2o is an HTTP server with support for HTTP/1.x, HTTP/2 and HTTP/3. Prior to commit 8dc37cb, when h2o receives a ClientHello message over TLS or QUIC and it contains a zero-length SNI extension, the h2o server runs over the zero-length hostname while trying to copy the hostname, assuming that it is NULL-terminated. This is a potential denial-of-service attack vector in sense that it might trigger segmentation violation. This issue has been fixed by commit 8dc37cb.
Exploitation Scenario
An attacker sends a TLS or QUIC ClientHello containing an SNI extension with a zero-length hostname to an internet-facing h2o instance — for example, one terminating TLS in front of a model-serving or inference API gateway. h2o attempts to copy and NULL-terminate the empty hostname string, dereferencing invalid memory and crashing the worker process with a segmentation fault. Repeating the request against the restarted worker sustains a denial of service against whatever service h2o fronts, without requiring authentication or user interaction.
Weaknesses (CWE)
CWE-125 Out-of-bounds Read
Primary
CWE-170 Improper Null Termination
Primary
CWE-125 Out-of-bounds Read CWE-170 Improper Null Termination CWE-125 — Out-of-bounds Read: The product reads data past the end, or before the beginning, of the intended buffer.
- [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylis
- [Architecture and Design] Use a language that provides appropriate memory abstractions.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H References
Timeline
Related Vulnerabilities
CVE-2026-33660 10.0 TensorFlow: type confusion NPD in tensor conversion
Same attack type: DoS CVE-2023-25668 9.8 TensorFlow: unauthenticated RCE via heap buffer overflow
Same attack type: DoS CVE-2022-23587 9.8 TensorFlow: integer overflow in Grappler enables RCE
Same attack type: DoS CVE-2022-35939 9.8 TensorFlow: ScatterNd OOB write enables RCE/crash
Same attack type: DoS CVE-2022-41900 9.8 TensorFlow: heap OOB RCE in FractionalMaxPool op
Same attack type: DoS