Summary
CVE-2026-100660 is a denial-of-service vulnerability in the HTTP/3 codec (netty-codec-http3) of the Netty networking framework, caused by unbounded memory retention in its QPACK encoder implementation. A remote, unauthenticated attacker can drive server-side heap exhaustion by opening HTTP/3 requests while withholding the QPACK decoder acknowledgments the encoder expects, causing internal per-stream tracking state to accumulate without limit. The issue is rated 8.7 (CVSS v4.0) / High severity.
Technical details
- Root cause: Netty’s
QpackEncodertracks per-stream QPACK "section" state (thestreamSectionTrackersmap) after emitting a dynamic-table-referencing header block, but this state is only released when the remote decoder sends a Section Acknowledgment or Stream Cancellation instruction — it is never released simply because the underlying HTTP/3 stream completes. - Trigger conditions: The attacker advertises a non-zero QPACK dynamic-table capacity, then issues a stream of sequential HTTP/3 requests while deliberately never sending the corresponding Section Acknowledgment or Stream Cancellation instructions on the QPACK decoder stream.
- Attack vector: Network-based, no authentication or user interaction required (AV:N/PR:N/UI:N). Any Netty-based server that terminates HTTP/3 traffic with QPACK dynamic table support enabled is exposed.
- Impact: Unbounded heap growth on the server as per-stream encoder state accumulates, ultimately leading to memory exhaustion and denial of service; confidentiality and integrity are not affected.
Affected software
io.netty:netty-codec-http3versions 4.2.0.Final through 4.2.17.Final- Fixed in 4.2.18.Final
Severity
- CVSS v4.0: 8.7 (High) —
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 - CVSS v3.1: 7.5 (High) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CWE-770: Allocation of Resources Without Limits or Throttling
Mitigation and recommended actions
- Immediate: Upgrade
netty-codec-http3to 4.2.18.Final or later, where per-stream QPACK encoder state is bounded and released correctly. - If patching is not immediately possible:
- Disable or restrict the QPACK dynamic table (avoid advertising a non-zero
HTTP3_SETTINGS_QPACK_MAX_TABLE_CAPACITY) on servers where HTTP/3 support can be reconfigured, reducing exposure to this specific state-retention path. - Apply connection- and memory-level safeguards (e.g., per-connection memory/stream limits, aggressive idle/stream timeouts, and monitoring for abnormal heap growth) at the network or application layer as a stopgap until the upgrade is deployed.
- Prioritize patching for any internet-facing service that terminates HTTP/3 using Netty’s
netty-codec-http3module.
- Disable or restrict the QPACK dynamic table (avoid advertising a non-zero

