CVE-2026-12708 · Package
NO FIX YET · SEE WHAT TO DO
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.
first public Nov 10, 2026 · 1 source
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Applications built on tokio-quiche that serve or accept HTTP/3 connections, as client or server, with DATAGRAM support negotiated. Core quiche and HTTP/3 deployments without DATAGRAM support are not affected, and DATAGRAMs are enabled by default in tokio-quiche.
Not affected if core-quiche-only, dgram-disabled, no-http3
Who cares http3, quic, rust, self-hosted, tokio-quiche
0.23.0 are affected.QuicSettings::enable_dgram is left at its default (enabled) in your configuration.0.23.0 or later.QuicSettings::enable_dgram to false (per the vendor's mitigation).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.
Check it with your coding agent
It reads this page and tells you if your code is affected.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
This page as .md · .json · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.