Description
Netty's HTTP/3 codec (io.netty:netty-codec-http3) from 4.2.0.Final through 4.2.17.Final retains unbounded per-stream QPACK encoder state. QpackEncoder stores a queue and a dynamic-table index tracker for every encoded field section that references the QPACK dynamic table, keyed by the peer-controlled QUIC stream ID, and these entries are released only when the remote decoder sends a Section Acknowledgment or Stream Cancellation instruction — not when the HTTP/3 stream completes. There is no limit on the number of tracked streams, field sections, or retained bytes. A remote, unauthenticated HTTP/3 client can advertise a non-zero QPACK dynamic-table capacity, acknowledge the table insertion so the server reuses a dynamically indexed response header, and then omit all mandatory Section Acknowledgments while issuing sequential requests over a single QUIC connection, bypassing concurrent-stream limits and causing unbounded heap growth until the server exhausts memory (denial of service). Fixed in 4.2.18.Final.
Published: 2026-09-26
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

Netty’s HTTP/3 codec (netty-codec-http3) retains unbounded memory for the QPACK encoder state. Each HTTP/3 stream that stores a dynamic table reference keeps a queue and index tracker keyed by the peer‑controlled QUIC stream ID. These entries are released only after a remote decoder acknowledgment or stream cancellation, not when the stream finishes. Because the number of streams, field sections, or retained bytes is unbounded, a malicious client can intentionally prevent cleanup, causing the server to keep memory until it runs out, resulting in a denial of service. This weakness is classified as CWE‑770, Uncontrolled Resource Allocation.

Affected Systems

The vulnerability affects Netty’s http/3 codec for all releases from 4.2.0.Final through 4.2.17.Final inclusive. Version 4.2.18.Final and later contain the fix. Applications that embed netty-codec-http3 in this version range and accept HTTP/3 connections are at risk.

Risk and Exploitability

The CVSS score of 8.7 reflects a high impact denial‑of‑service risk. EPSS is not available, but the lack of authentication and the possibility to send controlled QPACK requests make exploitation straightforward for a remote client. The vulnerability is not listed in CISA KEV; however, its high CVSS, lack of mitigation in current releases, and remote nature combine to present a significant threat to any service exposing HTTP/3 over Netty.

Generated by OpenCVE AI on September 26, 2026 at 15:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Netty to version 4.2.18.Final or newer to apply the fixed QPACK encoder state cleanup.
  • If immediate upgrade is not possible, disable HTTP/3 support or the QPACK encoder in the application configuration to prevent the exploit.
  • Implement network‑level rate limiting or connection quotas for QUIC streams, and monitor memory usage for abnormal growth, allowing operators to shut down the process before exhaustion occurs.

Generated by OpenCVE AI on September 26, 2026 at 15:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Description Netty's HTTP/3 codec (io.netty:netty-codec-http3) from 4.2.0.Final through 4.2.17.Final retains unbounded per-stream QPACK encoder state. QpackEncoder stores a queue and a dynamic-table index tracker for every encoded field section that references the QPACK dynamic table, keyed by the peer-controlled QUIC stream ID, and these entries are released only when the remote decoder sends a Section Acknowledgment or Stream Cancellation instruction — not when the HTTP/3 stream completes. There is no limit on the number of tracked streams, field sections, or retained bytes. A remote, unauthenticated HTTP/3 client can advertise a non-zero QPACK dynamic-table capacity, acknowledge the table insertion so the server reuses a dynamically indexed response header, and then omit all mandatory Section Acknowledgments while issuing sequential requests over a single QUIC connection, bypassing concurrent-stream limits and causing unbounded heap growth until the server exhausts memory (denial of service). Fixed in 4.2.18.Final.
Title Netty before 4.2.18.Final QpackEncoder Unbounded Memory Retention
First Time appeared Netty
Netty netty
Weaknesses CWE-770
CPEs cpe:2.3:a:netty:netty:*:*:*:*:*:*:*:*
Vendors & Products Netty
Netty netty
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

cvssV4_0

{'score': 8.7, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-26T13:23:27.554Z

Reserved: 2026-09-26T02:33:59.039Z

Link: CVE-2026-100660

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-26T14:16:48.970

Modified: 2026-09-26T14:16:48.970

Link: CVE-2026-100660

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T15:45:14Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling