Skip to main content

h2o HTTP Server CVE-2026-44452

MEDIUM
Out-of-bounds Read (CWE-125)
2026-07-16 security-advisories@github.com
5.9
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft TLS ClientHello with zero-length SNI
  2. Delivery
    Send packet to h2o TLS or QUIC listener
  3. Exploit
    SNI hostname-copy routine reads past empty buffer
  4. Execution
    Out-of-bounds read triggers segmentation fault
  5. Persist
    h2o process crashes
  6. Impact
    Service unavailable

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

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 the h2o server has at least one TLS (HTTPS) or QUIC (HTTP/3) listener active and network-reachable by the attacker; h2o instances serving only plain HTTP without TLS are not affected by this code path. The attacker must craft a non-standard TLS ClientHello containing a zero-length SNI extension value - standard TLS stacks (browsers, curl, OpenSSL) do not produce this by default, which accounts for the High Attack Complexity (AC:H) in the CVSS vector and means opportunistic scanning tools are unlikely to trigger this inadvertently. No authentication, session state, or user interaction is required. Exploitation is further limited to the specific SNI parsing routine; other aspects of h2o's request handling are unaffected.

Impact

The CVSS 3.1 score of 5.9 (Medium) with vector AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H captures the key tension: network-accessible and requiring no authentication or user interaction, but with High Attack Complexity - standard TLS client libraries do not emit zero-length SNI, so reliable exploitation requires crafting non-standard handshake packets. Impact is restricted to Availability (A:H, server crash), with no confirmed confidentiality or integrity impact. No EPSS data was provided, and h2o is not listed in CISA KEV, suggesting no known widespread active exploitation. The 'Information Disclosure' tag in the input is inconsistent with the CVSS C:N metric and the description's DoS-only framing; unless the vendor advisory clarifies memory leakage potential, this should be treated as a DoS-only issue. Overall, this is a real but lower-priority vulnerability: meaningful for operators of public-facing h2o TLS/QUIC endpoints who cannot tolerate service crashes, but not an immediate high-urgency patch given the complexity requirement and absence of public exploit code.

Exploit ScenarioDerived

A remote attacker crafts a TLS ClientHello packet with an SNI extension whose length field is set to zero and sends it to an h2o server's TLS or QUIC listener. The server's SNI hostname-copy routine reads past the empty buffer looking for a NULL terminator, triggering a segmentation fault that crashes the h2o process. Because the attack targets the initial handshake message over both TCP/TLS and UDP/QUIC, the attacker can reach any h2o deployment with a public TLS or HTTP/3 endpoint; if the process does not auto-restart, repeated sends can sustain a denial of service. No public PoC has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 16, 2026

Denial-of-service via malformed TLS/QUIC ClientHello in h2o HTTP server allows remote unauthenticated attackers to crash the server process by sending a zero-length SNI extension. The hostname-copy routine assumes NULL-termination on the empty SNI buffer (CWE-125 out-of-bounds read), reading beyond the allocation boundary and triggering a segmentation fault. No public exploit or active exploitation (CISA KEV) has been identified; the fix is available as an upstream commit but no confirmed tagged release exists at time of analysis.

RemediationAI

The upstream fix is commit 8dc37cb1e6171f7f772667618ea440696fed82c3, available at https://github.com/h2o/h2o/commit/8dc37cb1e6171f7f772667618ea440696fed82c3. No tagged stable release incorporating this commit has been independently confirmed at time of analysis; operators should build h2o from source at or after this commit and monitor the project release page for a versioned release. As a compensating control, deploying a TLS-terminating reverse proxy (e.g., nginx or HAProxy) in front of h2o to validate and strip malformed SNI extensions before forwarding connections reduces direct exposure, at the cost of added architectural complexity and a potential single point of failure. Restricting TLS/QUIC listener access to trusted IP ranges via firewall rules limits the attack surface for non-public deployments, though it does not eliminate risk for publicly accessible services. Refer to the official advisory at https://github.com/h2o/h2o/security/advisories/GHSA-w68q-rqwx-7wvq for maintainer-confirmed guidance.

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 an open-source C-based HTTP server supporting HTTP/1.x, HTTP/2, and HTTP/3 (via QUIC). The vulnerability exists in the TLS/QUIC ClientHello handshake processing path, specifically in Server Name Indication (SNI) parsing. SNI (RFC 6066) is a TLS extension that allows clients to declare the target hostname before certificate selection. The root cause, CWE-125 (Out-of-bounds Read), arises because the server's hostname-copy routine treats the SNI value as a NULL-terminated C string; when the extension is present but carries a zero-length value, the routine reads past the end of the empty buffer searching for a terminator. Because h2o supports both TLS over TCP and QUIC over UDP (HTTP/3), both protocol stacks share this ClientHello processing code path, widening the attack surface to any TLS or QUIC listener. The metadata tags include 'Buffer Overflow' and 'Information Disclosure,' but the CWE (125) and description point to an out-of-bounds read rather than a write - a potential discrepancy worth verifying against the vendor advisory, since an OOB read could theoretically expose adjacent memory before crashing.

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

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

AV:N for network-delivered TLS/QUIC handshake; AC:H because zero-length SNI requires non-standard packet crafting; PR:N and UI:N as pre-auth with no interaction; A:H for process crash; C:N and I:N per description and CVSS impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/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
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
niche HTTP server, far less deployed than nginx or Apache
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

cpe:2.3:a:h2o:h2o:*:*:*:*:*:*:*:*

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

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