---
id: "CVE-2026-12708"
page: "https://infrastack.ai/live/CVE-2026-12708"
kind: "vulnerability"
aliases: ["CVE-2026-12708"]
title: "tokio-quiche: unbounded per-flow state lets a peer exhaust memory"
severity: "high"
cvss: 8.7
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["http3", "package", "quic", "rust", "self-hosted", "tokio-quiche"]
not_affected_if: ["core-quiche-only", "dgram-disabled", "no-http3"]
published_at: "2026-11-10T14:17:29+00:00"
first_seen_at: "2026-11-10T14:22:20+00:00"
updated_at: "2026-11-10T14:23:52+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-12708", "first_seen_at": "2026-11-10T14:22:20+00:00"}]
exploit_sources: []
---

# tokio-quiche: unbounded per-flow state lets a peer exhaust memory

Link for people: https://infrastack.ai/live/CVE-2026-12708 (this .md is for agents)

tokio-quiche creates new retained state for every new flow identifier in incoming HTTP/3 DATAGRAM frames, with no limit. A remote peer that sends DATAGRAMs with many distinct identifiers can grow memory until the process runs out and denies service.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the tokio-quiche version in Cargo.lock; versions below `0.23.0` are affected.
- Check whether `QuicSettings::enable_dgram` is left at its default (enabled) in your configuration.

## Fix

- tokio-quiche: upgrade to `0.23.0` or later.
- Until upgraded, set `QuicSettings::enable_dgram` to `false` (per the vendor's mitigation).

## Timeline

- 2026-11-10T14:22:20+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-12708

## Documents

- [advisory] Vendor advisory: github.com https://github.com/cloudflare/quiche/security/advisories/GHSA-wcm9-jv39-r963

## From the sources

Summary


Cloudflare tokio-quiche was found to contain an uncontrolled resource consumption vulnerability in its HTTP/3 DATAGRAM handling. For every previously unseen flow identifier (quarter stream ID) received in a DATAGRAM frame, tokio-quiche creates and retains new, per-flow state. A remote peer can send DATAGRAMs with many distinct identifiers, causing the per-connection flow map and associated channel state to grow without bound.

Impact


Exploitation can exhaust process memory and cause a denial of service. The vulnerable code is used in both client and server configurations, so either role can be affected by a malicious peer. QUIC DATAGRAM support in tokio-quiche is enabled by default through QuicSettings::enable_dgram; applications can disable it by setting this field to false. The vulnerable HTTP/3 path is reachable only when DATAGRAM support is negotiated with the peer. Core quiche and HTTP/3 deployments without DATAGRAM support are not affected. 






Mitigation


Disable DATAGRAMs in tokio-quiche’s QuicSettings::enable_dgram.






Remediation


Upgrade to tokio-quiche version 0.23.0 or later. The fixed code creates flow state only for valid DATAGRAM-capable request streams, which are bounded by QUIC’s stream limits. To tolerate packet reordering, servers retain early DATAGRAMs in a bounded, expiring buffer, while clients discard DATAGRAMs for unknown flows.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
