🇰🇷 한글 설명
Netty의 HAProxy PROXY protocol v2 코덱에서 중첩된 PP2_TYPE_SSL TLV 레코드를 포함한 헤더를 처리할 때 네이티브 또는 힙 메모리가 누수되는 취약점이 발견되었습니다. 이 문제는 특정 조건의 헤더를 전송할 때 발생하며, 성공적인 파싱 후에도 누적 버퍼가 해제되지 않고 메모리에 고정되어 지속적인 메모리 점유를 유발합니다.
💡 쉬운 설명
특정한 규칙을 가진 데이터를 보내면 프로그램이 사용한 메모리를 제대로 돌려주지 않고 계속 쌓아두는 버그입니다. 이 현상이 반복되면 컴퓨터의 메모리가 가득 차서 시스템이 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (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 HAProxy PROXY protocol v2 codec in netty leaks native or heap memory on every connection when a client sends a syntactically valid header containing nested `PP2_TYPE_SSL` TLVs (type-length-value records) at depth two or greater. The leak occurs on the successful parse path — no exception is thrown, the message fires downstream, the decoder removes itself, and the application releases the `HAProxyMessage` normally. Yet the underlying cumulation buffer (a pooled, potentially direct `ByteBuf` allocated by the channel) remains permanently pinned. 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
⚔️ 공격 벡터
중첩된 PP2_TYPE_SSL TLV 레코드가 포함된 유효한 HAProxy PROXY protocol v2 헤더를 전송하여 메모리 누수 유발
🛡️ 대응 방법
Netty 버전을 4.1.135.Final 또는 4.2.15.Final 이상으로 업데이트
🔧 검증 코드
출력된 결과에서 netty 관련 라이브러리의 버전이 4.1.135.Final 또는 4.2.15.Final보다 낮은지 확인
mvn dependency:tree | grep -E 'netty-buffer|netty-common'
📊 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