GHSA-6jv9-x5w9-2ccm

Netty's Lack of Lifecycle Cleanup Leads to Pooled ByteBuf Leak in RedisArrayAggregator

At a glance

Published
Updated
CVE
CVE-2026-48006
CVSS_V3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS_V4
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

Description

### Impact 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.

Affected packages

PackageVersions
Maven · io.netty:netty-codec-redisintroduced 4.2.0.Final, fixed 4.2.15.Final
Maven · io.netty:netty-codec-redisintroduced 0, fixed 4.1.135.Final

References

Sources

SourceLicence
OSV.devCC-BY 4.0 — GitHub Advisory Database