CVE-2026-48006: Netty Redis Memory Leak – Direct Memory Exhaustion DoS
Netty's Redis message aggregator has a memory leak that can crash applications. When a Redis client closes its connection mid-request, the handler doesn't clean up buffered data, leaving memory fragments locked in the heap. Attackers can exploit this by repeatedly opening and closing connections, slowly poisoning the shared memory pool until the entire application runs out of buffer space and fails to handle new network traffic.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-401, CWE-772
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-12 / 2026-07-15
NVD description (verbatim)
Netty is a network application framework for development of protocol servers and clients. Prior to versions 4.1.135.Final and 4.2.15.Final, the RedisArrayAggregator handler permanently leaks pooled direct-memory buffers when a Redis pipeline connection closes before a RESP array aggregate completes. The handler retains child messages in per-handler state (`depths` field) but defines no `channelInactive`, `handlerRemoved`, or `exceptionCaught` method to release them when the pipeline tears down. Because the leaked buffers are slices of `PooledByteBufAllocator` chunks, they prevent those chunks from being returned to the JVM-wide direct-memory pool. Repeated connection churn by any network peer monotonically drains this shared pool, eventually causing allocation failures on all Netty channels in the process. Versions 4.1.135.Final and 4.2.15.Final patch the issue.
7 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-48006 affects Netty's RedisArrayAggregator handler in versions prior to 4.1.135.Final and 4.2.15.Final. The handler accumulates child message references in a `depths` field to reconstruct RESP array responses, but lacks lifecycle callbacks (channelInactive, handlerRemoved, exceptionCaught) to release these retained buffers when channels disconnect abruptly. Because Netty uses PooledByteBufAllocator with chunked direct memory, leaked buffer slices prevent their parent chunks from returning to the JVM-wide direct-memory pool. Attacker-controlled connection churn monotonically drains this global resource, eventually exhausting direct memory and causing allocation failures across all channels in the process.
Business impact
Applications using Netty for Redis protocol handling face availability risk. An attacker with network access can trigger repeated connection cycles, gradually depleting direct memory until the application becomes unable to accept or process new connections. This manifests as denial of service—not an immediate crash, but progressive degradation and eventual unresponsiveness. Services handling high volumes of transient Redis connections are most exposed.
Affected systems
Netty versions prior to 4.1.135.Final (4.1.x branch) and 4.2.15.Final (4.2.x branch) are affected. Any application embedding Netty and using the RedisArrayAggregator handler is vulnerable. This includes Java applications that bridge Redis client libraries or directly implement Redis protocol handling atop Netty.
Exploitability
Exploitation requires only network access; no credentials, user interaction, or special environment configuration is needed. An attacker can open and close TCP connections to a Netty-based Redis service repeatedly, each incomplete request leaking pooled memory. The attack is trivial to script and does not require deep protocol knowledge—simple connection thrashing suffices. However, the leak is incremental; sustained or high-rate connection churn is needed to cause measurable impact on typical deployments.
Remediation
Upgrade to Netty 4.1.135.Final or later (for the 4.1.x branch) or 4.2.15.Final or later (for the 4.2.x branch). These versions include the missing lifecycle event handlers in RedisArrayAggregator, ensuring retained buffers are released when connections drop or handlers are removed. Verify the patch version in your dependency management tool before and after upgrade.
Patch guidance
1. Identify all instances of Netty in your build dependencies (Maven pom.xml, Gradle build.gradle, or equivalent). 2. Check which version branch you are using (4.1.x or 4.2.x). 3. Update Netty to 4.1.135.Final or newer if on 4.1, or to 4.2.15.Final or newer if on 4.2. 4. Run your unit and integration tests, particularly those exercising Redis protocol handling or connection lifecycle events. 5. Monitor direct-memory usage after deployment; verify that connection churn no longer causes memory to remain pinned. 6. For critical deployments, test the patch in a staging environment with sustained connection churn to confirm the leak is resolved.
Detection guidance
Monitor direct-memory pressure in your JVM using tools like `jcmd <pid> VM.native_memory summary` or APM platforms that track GC and off-heap memory. Look for monotonically increasing direct-memory usage that does not recover after garbage collection, especially following periods of connection churn. Application logs or metrics showing allocation failures (`OutOfDirectMemoryException` or similar) after sustained traffic spikes are a strong signal. Intrusion detection rules can flag repeated short-lived connections to Redis ports, though this may generate false positives in high-churn environments.
Why prioritize this
This vulnerability merits prompt patching despite a moderate CVSS score (7.5). The attack surface is broad—any network-connected Netty application using RedisArrayAggregator can be targeted—and exploitation is trivial. The impact is availability degradation rather than data compromise, but the gradual nature of the leak means detection may be delayed, allowing attackers to cause sustained outages. Organizations running Redis-backed services should prioritize this update in their patch cycles.
Risk score, explained
CVSS 3.1 score of 7.5 (HIGH) reflects the attack vector (network-accessible, no privileges or user interaction required), low complexity, and high impact to availability. The absence of confidentiality or integrity impact keeps the score moderate rather than critical. However, the practical exploitability and ease of triggering sustained DoS against production systems justify rapid remediation.
Frequently asked questions
Does this affect all Netty users or only those using Redis?
Only applications that use Netty's RedisArrayAggregator handler are vulnerable. If you use Netty for other protocols (HTTP, gRPC, custom protocols) and do not explicitly wire in the Redis aggregator, you are not affected by this specific vulnerability.
Can this leak be mitigated without upgrading Netty?
Partial mitigation is possible by implementing connection rate limiting or timeouts on incomplete requests, reducing the churn rate an attacker can achieve. However, the underlying leak remains until you upgrade to a patched version. This is a holding measure only.
How long does it take for this leak to cause application failure?
The time to exhaustion depends on direct-memory pool size, connection churn rate, and request size. In lab tests with small pools and rapid churn, failures occurred within minutes. In production with larger pools, it may take hours of sustained attack. Exact timing is deployment-specific.
Will upgrading Netty break my application?
Netty 4.1.135.Final and 4.2.15.Final are patch releases designed to be drop-in replacements. They do not introduce breaking API changes. Test in a staging environment before production rollout, but compatibility risk is low.
This analysis is provided for informational purposes to support security decision-making. It reflects the vulnerability as described in public sources and vendor advisories as of the publication date. Security teams should validate all patch versions, compatibility assessments, and deployment procedures in their own environments. SEC.co makes no warranty as to the accuracy, completeness, or applicability of this information to any specific system or organization. Always test patches in staging before production deployment. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-48043MEDIUMNetty HTTP/2 Decompression Memory Leak DoS Vulnerability
- CVE-2026-46178HIGHLinux Kernel RDMA/mlx4 Resource Leak – HIGH Severity
- CVE-2026-46201HIGHLinux Xe Graphics Driver DMA-Buf Attachment Leak
- CVE-2026-46303HIGHLinux isofs Rock Ridge Information Disclosure Vulnerability
- CVE-2026-46309HIGHLinux xe GPU Driver Memory Disclosure via Incoherent Cache Access
- CVE-2026-46679HIGHlibp2p Gossipsub Heap Exhaustion DoS (7.5 HIGH)
- CVE-2026-41840MEDIUMSpring WebFlux Multipart DoS Vulnerability – Patch Guide
- CVE-2026-45287MEDIUMOpenTelemetry-Go File Descriptor Leak & Denial of Service