Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOpen HTTP/3 QUIC connection to server
-
DeliveryAdvertise non-zero QPACK dynamic-table capacity
-
ExploitAck insertion to force dynamically-indexed response header
-
ExecutionIssue sequential requests omitting all Section Acknowledgments
-
PersistPer-stream encoder state retained unbounded
-
ImpactHeap exhaustion crashes server (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the target to run a Netty HTTP/3 server using netty-codec-http3 between 4.2.0.Final and 4.2.17.Final, with QPACK dynamic-table indexing in effect - i.e., the server must reuse a dynamically-indexed response header after the client advertises a non-zero QPACK dynamic-table capacity and acknowledges the insertion. Exploitation itself needs no authentication or user interaction (PR:N/UI:N) and is performed over a single QUIC connection, bypassing concurrent-stream limits by withholding mandatory Section Acknowledgments. The practical limiter is deployment scope: only Internet-facing HTTP/3 (QUIC) endpoints built on Netty are exposed, and HTTP/3 support on Netty is not yet widely enabled in production. |
| Impact | This is a genuine but bounded availability risk. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H, all confidentiality/integrity metrics N) is internally consistent with the description: a remote, unauthenticated attacker over the network triggers unbounded heap growth leading to memory-exhaustion DoS, with no data compromise. The vendor score of 8.7 is driven entirely by VA:H (high availability impact) combined with easy network reachability. No EPSS score, no CISA KEV listing, and no public POC are present in the input, so the 8.7 reflects theoretical severity rather than demonstrated exploitation - treat it as a high-severity-but-unproven-in-the-wild issue. A meaningful real-world limiter not captured by the raw CVSS is that the target must be an HTTP/3 (QUIC) endpoint built on netty-codec-http3 AND must reuse dynamically-indexed QPACK response headers; HTTP/3 server deployment on Netty is still comparatively uncommon, which narrows the exposed population. No signals conflict; the main gap is the absence of exploitation-probability data (EPSS/KEV/POC all unstated). |
| Exploit ScenarioDerived | An attacker opens a single QUIC/HTTP/3 connection to a Netty-based server, advertises a non-zero QPACK dynamic-table capacity, and acknowledges a table insertion so the server begins reusing a dynamically-indexed response header. The attacker then fires a rapid stream of sequential requests while deliberately withholding every mandatory QPACK Section Acknowledgment, causing the QpackEncoder to retain per-stream state indefinitely until the JVM heap is exhausted and the server crashes. No authentication or user interaction is required; no public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Unbounded heap growth in Netty's HTTP/3 codec (io.netty:netty-codec-http3) 4.2.0.Final through 4.2.17.Final allows a remote, unauthenticated HTTP/3 client to exhaust server memory and cause a denial of service. The QpackEncoder retains per-stream encoder state indefinitely because entries are only released when the peer sends a Section Acknowledgment or Stream Cancellation instruction, not when the HTTP/3 stream completes; an attacker advertising a non-zero QPACK dynamic-table capacity and withholding those acknowledgments across sequential requests on a single QUIC connection can accumulate unbounded tracked streams, field sections, and bytes, bypassing concurrent-stream limits. No public exploit code has been identified at time of analysis, and no CISA KEV confirmation of active exploitation is present; the practical exposure is limited because Netty's HTTP/3 (QUIC) support is not yet widely enabled in production. Vendor-released patch: 4.2.18.Final (GHSA-495p-pchh-r4mc).
RemediationAI
Upgrade to Netty 4.2.18.Final, which contains the vendor-released fix for the unbounded QPACK encoder state retention; the vendor advisory is at https://github.com/netty/netty/security/advisories/GHSA-495p-pchh-r4mc and the VulnCheck advisory at https://www.vulncheck.com/advisories/netty-before-4.2.18-final-qpackencoder-unbounded-memory-retention. If upgrading is not immediately feasible, the most effective compensating control is to remove the attack surface: disable HTTP/3 (QUIC) listeners on Netty-based services, or ensure they are not Internet-facing, accepting the trade-off that HTTP/3 clients lose QUIC-based connectivity and may fall back to HTTP/1.1 or HTTP/2 over TCP. Where Netty configuration or a fronting proxy permits, preventing or disabling QPACK dynamic-table indexing for the server's encoder (for example negotiating a dynamic-table capacity of zero for HTTP/3 connections) breaks the prerequisite that a dynamically indexed response header be reused, at the cost of reduced header-compression efficiency and somewhat larger headers. Additional containment options include enforcing strict per-source connection limits and per-connection request throttling so a single QUIC connection cannot issue unbounded sequential requests, and monitoring Netty processes (or setting container memory limits with restart-on-OOM semantics) so memory growth from this condition is detected and contained; these are mitigations only and do not replace applying 4.2.18.Final.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is Netty's QPACK encoder implementation within netty-codec-http3, which handles QPACK (RFC 9204) header compression for HTTP/3 over QUIC. QPACK offers two modes: static-table references and a dynamic table negotiated via SETTINGS_QPACK_MAX_TABLE_CAPACITY; when a peer advertises a non-zero dynamic-table capacity, the encoder may insert entries and reference them by dynamic index. Correct QPACK operation requires the decoder to confirm processing of dynamic-table references with Section Acknowledgment instructions, and to signal abandonment with Stream Cancellation instructions; the encoder uses these signals to know when a given stream's outstanding references have been resolved and the associated state can be freed. In affected versions, QpackEncoder keeps a queue plus a dynamic-table index tracker keyed by the peer-controlled QUIC stream ID for every encoded field section referencing the dynamic table, releasing those entries only upon Section Acknowledgment or Stream Cancellation. Because the release condition depends entirely on attacker-controlled protocol messages rather than on HTTP/3 stream lifecycle, and because there is no cap on tracked streams, tracked field sections, or retained bytes, the structure grows without bound. The root-cause class is CWE-770 (Allocation of Resources Without Limits or Throttling), and the CPE cpe:2.3:a:netty:netty:*:*:*:*:*:*:*:* confirms the netty artifact family is the affected package; the ENISA EUVD record (EUVD-2026-87754) separately lists the affected range as netty < 4.2.18.Final.
Know when Netty gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Remote unauthenticated attacker with no interaction over an HTTP/3 endpoint (AV:N/AC:L/PR:N/UI:N); impact is memory-exhaustion DoS only, so A:H with C:N/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
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.
Articles & Coverage 1
Technical POC Analysis
CWE-770 (Allocation of Resources Without Limits or Throttling) in io.netty:netty-codec-http3, class QpackEncoder.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Netty's HTTP/3 codec, used in Java-based services that enable QUIC/HTTP-3 endpoints, contains a memory-exhaustion flaw (CVE-2026-100660) that a remote client can trigger by withholding QPACK acknowledgments, depleting server memory and causing denial of service. Because Netty HTTP/3 support is not yet widely enabled in production, the immediate organizational exposure is limited to teams that have already activated QUIC endpoints, but any internet-facing service in that group could be knocked offline. Leadership should prioritize confirming whether affected Netty versions are present and remediating to the vendor patch, since the cost of an outage outweighs a straightforward dependency upgrade.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Netty before 4.1.42.Final mishandles whitespace before the colon in HTTP headers (such as a "Transfer-Encoding : chunked
Certificate revocation-check bypass in the Netty network framework's OCSP client (io.netty:netty-handler-ssl-ocsp) affec
netty-incubator-codec-ohttp is the OHTTP implementation for netty. Rated critical severity (CVSS 9.1), this vulnerabilit
The netty incubator codec.bhttp is a java language binary http parser. Rated high severity (CVSS 8.1), this vulnerabilit
Netty, an asynchronous, event-driven network application framework, has a vulnerability starting in version 4.1.91.Final
Memory exhaustion in Netty's SctpMessageCompletionHandler (netty-transport-sctp) allows unauthenticated remote peers to
Compression-amplification denial of service in the Netty network framework (versions prior to 4.1.136.Final and 4.2.16.F
Memory-amplification denial of service in the Netty network framework (SPDY/3.1 codec) prior to 4.1.136.Final and 4.2.16
Memory-exhaustion denial of service in Netty's HTTP/3 codec (Http3FrameCodec) affects all releases prior to 4.2.16.Final
Netty's HTTP CORS handler silently rewrites the Vary response header to Vary: Origin in releases before 4.1.137.Final an
Denial of service in the Netty HTTP/3 codec (io.netty:netty-codec-http3) prior to version 4.2.15.Final allows remote una
EUVD-2026-87754
GHSA-8rpm-pm7h-f5fv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB