🇰🇷 한글 설명
Netty 프레임워크의 RedisArrayAggregator 핸들러에서 Redis 파이프라인 연결이 완료 전 종료될 경우 풀링된 직접 메모리 버퍼가 해제되지 않고 누수되는 취약점입니다. 이로 인해 공유 메모리 풀이 고갈되어 프로세스 내 모든 Netty 채널에서 메모리 할당 실패가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 연결이 갑자기 끊길 때 사용하던 메모리를 제대로 돌려주지 않고 계속 쌓아두는 버그입니다. 이 현상이 반복되면 컴퓨터의 메모리가 가득 차서 프로그램이 정상적으로 작동하지 않게 됩니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
Netty versions prior to 4.1.135.Final and 4.2.15.Final
⚔️ 공격 벡터
네트워크 피어(Peer)가 Redis 파이프라인 연결을 의도적으로 빈번하게 생성하고 조기에 종료하여 메모리 고갈 유도
🛡️ 대응 방법
Netty 버전을 4.1.135.Final 또는 4.2.15.Final 이상으로 업데이트
🔧 검증 코드
명령어 결과에 취약한 버전의 Netty 라이브러리가 출력되면 해당 시스템은 패치가 필요한 상태입니다.
mvn dependency:list | grep -E 'netty-all|netty-buffer' | grep -v '4.1.135.Final|4.2.15.Final'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server