CVE-2026-44436: Quicly: QUIC DoS via oversized Connection ID overflow

HIGH
Published July 16, 2026
CISO Take

Quicly, the QUIC implementation embedded in the H2O HTTP server, fails to enforce the 20-byte Connection ID limit mandated for QUIC v1 inside its library code — only the bundled CLI tool had that check — so a remote, unauthenticated attacker can send a single crafted packet with an oversized Connection ID and corrupt connection state, crashing the process via an assertion failure. This is a pure availability issue (CVSS 7.5, AV:N/AC:L/PR:N/UI:N, C:N/I:N/A:H) with no confidentiality or integrity impact, no CISA KEV listing, no public PoC or Nuclei template, and no EPSS score yet published, so there is no evidence of active exploitation. The AI relevance here is indirect and conditional: Quicly is a general-purpose QUIC/HTTP3 networking library, not an AI/ML component itself, and it is not one of our tracked AI packages — it only matters if an organization's model-serving edge, API gateway, or agent-tool endpoint happens to sit behind H2O/quicly for HTTP/3. If that's the case, an attacker could remotely knock the front door of an inference API offline with a single packet. Patch to quicly commit 8b178e6 or later (or the corresponding H2O release), and if you can't patch immediately, add your own 20-byte CID length enforcement at any proxy or WAF layer in front of the QUIC listener.

Sources: NVD GitHub Advisory

What is the risk?

Network-exploitable, unauthenticated, low-complexity DoS (CVSS 7.5, AV:N/AC:L/PR:N/UI:N/A:H, C:N/I:N) — any internet-facing service still using an unpatched quicly library is a single-crafted-packet crash away from downtime. Mitigating factors: the overflow stays inside the allocated memory chunk (no reported RCE path, 'only' an assertion-triggered crash), there is no CISA KEV entry, no public exploit code, no Nuclei template, and EPSS data is not yet available — so this reads as a real but not yet weaponized bug. The AI-specific risk is low-to-conditional: Quicly/H2O is general web infrastructure rather than an AI/ML library, and it is not on our tracked AI package list, so exposure depends entirely on whether an org's AI stack (inference gateway, agent tool endpoint, RAG API front door) happens to terminate QUIC/HTTP3 through H2O/quicly.

How does the attack unfold?

Recon
Attacker identifies an internet-facing service using H2O with QUIC/HTTP3 enabled, potentially fronting an AI inference or agent-tool API.
AML.T0006
Craft malicious packet
Attacker builds a QUIC v1 packet with a Connection ID exceeding the 20-byte limit, exploiting the gap between the permissive packet decoder and the undersized CID buffers.
Exploitation
The oversized CID overruns the connection state buffer within allocated memory, corrupting quicly's internal state and triggering an assertion failure.
Impact
The server process crashes, causing a remote unauthenticated denial of service against whatever service — potentially an AI inference or agent endpoint — was behind the vulnerable H2O/quicly listener.
AML.T0029

How severe is it?

CVSS 3.1
7.5 / 10
EPSS
0.5%
chance of exploitation in 30 days
Higher than 41% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Trivial

What is the attack surface?

AV AC PR UI S C I A
AV Network
AC Low
PR None
UI None
S Unchanged
C None
I None
A High

What should I do?

1 step
  1. 1) Upgrade quicly to a version including commit 8b178e6 (or upgrade H2O to a release that bundles the fixed quicly). 2) If patching isn't immediately possible and you embed the quicly library directly (not just the CLI tool), add explicit enforcement rejecting QUIC v1 packets with Connection IDs longer than 20 bytes at your own packet-ingestion layer. 3) For any AI-facing endpoints (inference APIs, agent tool servers) fronted by QUIC/HTTP3, confirm whether H2O/quicly is in the path — if unknown, audit your edge/reverse-proxy stack now, since this CVE is silent unless you specifically use quicly. 4) Detection: monitor for repeated process crashes/assertion failures or abnormal connection resets in H2O/quicly logs as a signal of exploitation attempts. 5) No public PoC or scanner template exists today, so prioritize based on internet exposure of quicly-based services rather than treating this as urgent zero-day triage.

What does CISA's SSVC say?

Decision Track
Exploitation none
Automatable Yes
Technical Impact partial

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:

NIST AI RMF
MANAGE-4.1 - AI system incidents are monitored, and response plans are enacted
OWASP LLM Top 10
LLM04 - Model Denial of Service

Frequently Asked Questions

What is CVE-2026-44436?

Quicly, the QUIC implementation embedded in the H2O HTTP server, fails to enforce the 20-byte Connection ID limit mandated for QUIC v1 inside its library code — only the bundled CLI tool had that check — so a remote, unauthenticated attacker can send a single crafted packet with an oversized Connection ID and corrupt connection state, crashing the process via an assertion failure. This is a pure availability issue (CVSS 7.5, AV:N/AC:L/PR:N/UI:N, C:N/I:N/A:H) with no confidentiality or integrity impact, no CISA KEV listing, no public PoC or Nuclei template, and no EPSS score yet published, so there is no evidence of active exploitation. The AI relevance here is indirect and conditional: Quicly is a general-purpose QUIC/HTTP3 networking library, not an AI/ML component itself, and it is not one of our tracked AI packages — it only matters if an organization's model-serving edge, API gateway, or agent-tool endpoint happens to sit behind H2O/quicly for HTTP/3. If that's the case, an attacker could remotely knock the front door of an inference API offline with a single packet. Patch to quicly commit 8b178e6 or later (or the corresponding H2O release), and if you can't patch immediately, add your own 20-byte CID length enforcement at any proxy or WAF layer in front of the QUIC listener.

Is CVE-2026-44436 actively exploited?

No confirmed active exploitation of CVE-2026-44436 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-44436?

1) Upgrade quicly to a version including commit 8b178e6 (or upgrade H2O to a release that bundles the fixed quicly). 2) If patching isn't immediately possible and you embed the quicly library directly (not just the CLI tool), add explicit enforcement rejecting QUIC v1 packets with Connection IDs longer than 20 bytes at your own packet-ingestion layer. 3) For any AI-facing endpoints (inference APIs, agent tool servers) fronted by QUIC/HTTP3, confirm whether H2O/quicly is in the path — if unknown, audit your edge/reverse-proxy stack now, since this CVE is silent unless you specifically use quicly. 4) Detection: monitor for repeated process crashes/assertion failures or abnormal connection resets in H2O/quicly logs as a signal of exploitation attempts. 5) No public PoC or scanner template exists today, so prioritize based on internet exposure of quicly-based services rather than treating this as urgent zero-day triage.

What systems are affected by CVE-2026-44436?

This vulnerability affects the following AI/ML architecture patterns: model serving, agent frameworks.

What is the CVSS score for CVE-2026-44436?

CVE-2026-44436 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.49%.

What is the AI security impact?

Affected AI Architectures

model servingagent frameworks

MITRE ATLAS Techniques

AML.T0029 Denial of AI Service

Compliance Controls Affected

NIST AI RMF: MANAGE-4.1
OWASP LLM Top 10: LLM04

What are the technical details?

Original Advisory

Quicly is an IETF QUIC protocol implementation intended primarily for use within the H2O HTTP server. Prior to commit 8b178e6, Quicly is vulnerable to a Denial of Service attack through connection state corruption. In QUIC Invariants, the maximum length of a Connection ID is 255 bytes, while QUIC version 1 further restricts the maximum to 20 bytes. Quicly implements QUIC version 1 and therefore its CID buffers are limited to 20 bytes. However, to be able to respond to unknown versions of QUIC, its packet decoder accepts Connection IDs of up to 255 bytes. As its CID buffers are merely 20 bytes long, Quicly must reject QUIC version 1 packets with Connection IDs longer than that. The command line tool bundled with Quicly has had that check, however the library itself lacked such enforcement. As a consequence, when used by applications that lack their own enforcement, the connection state becoming inconsistent to buffer overrun. Fortunately, the overflow stops within the allocated chunk of memory, but nevertheless, the bug leads to assertion failures. This issue has been fixed by commit 8b178e6.

Exploitation Scenario

An unauthenticated attacker scans for internet-facing services running H2O with QUIC/HTTP3 enabled (e.g., a load balancer or gateway sitting in front of an AI inference API). They craft a single QUIC v1 packet containing a Connection ID longer than the 20-byte limit — permitted by the packet decoder, which accepts CIDs up to 255 bytes per the general QUIC invariants even though the underlying buffers are only 20 bytes. Because the quicly library itself (unlike its CLI tool) never rejects the oversized CID, the connection state buffer overruns within its allocated memory chunk, corrupting internal state and triggering an assertion failure that crashes the server process. If that server was terminating traffic for an AI model-serving endpoint or agent-tool API, the result is a remote, single-packet denial of service against that AI system's availability, with no authentication or user interaction required.

Weaknesses (CWE)

CWE-120 — Buffer Copy without Checking Size of Input ('Classic Buffer Overflow'): The product copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer.

  • [Requirements] Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, many languages that perform their own memory management, such as Java and Perl, are not subject to buffer overflows. Other languages, such as Ada and C#, typically provide overflow protection, but the protection can be disabled by the programmer. Be wary that a language's interface to native code may still be subject to overflows, even if the language itself is theoretically safe.
  • [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. Examples include the Safe C String Library (SafeStr) by Messier and Viega [REF-57], and the Strsafe.h library from Microsoft [REF-56]. These libraries provide safer versions of overflow-prone string-handling functions.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Timeline

Published
July 16, 2026
Last Modified
July 21, 2026
First Seen
July 16, 2026

Related Vulnerabilities