🇰🇷 한글 설명
Netty의 BrotliDecoder 및 일부 압축 해제 디코더에서 특수하게 제작된 입력값이 제공될 경우 과도한 바이트 버퍼를 할당하는 취약점이 발견되었습니다. 이로 인해 메모리가 지속적으로 점유되어 결국 메모리 부족(OOM) 현상이 발생하며 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
압축된 데이터를 해제하는 과정에서 컴퓨터의 메모리를 무한정 사용하게 만드는 버그가 있습니다. 공격자가 이 버그를 이용하면 서버의 메모리를 모두 써버려 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. In netty-codec-compression versions 4.1.124.Final and below, and netty-codec versions 4.2.4.Final and below, when supplied with specially crafted input, BrotliDecoder and certain other decompression decoders will allocate a large number of reachable byte buffers, which can lead to denial of service. BrotliDecoder.decompress has no limit in how often it calls pull, decompressing data 64K bytes at a time. The buffers are saved in the output list, and remain reachable until OOM is hit. This is fixed in versions 4.1.125.Final of netty-codec and 4.2.5.Final of netty-codec-compression.
📍 영향받는 시스템
netty-codec-compression 4.1.124.Final 이하 버전 및 netty-codec 4.2.4.Final 이하 버전
⚔️ 공격 벡터
특수하게 조작된 Brotli 압축 데이터를 디코더에 전송하여 메모리 할당 유도
🛡️ 대응 방법
netty-codec 4.1.125.Final 또는 netty-codec-compression 4.2.5.Final 이상 버전으로 업데이트
🔧 검증 코드
출력된 결과에서 netty-codec 또는 netty-codec-compression의 버전이 취약한 버전 범위에 있는지 확인합니다.
mvn dependency:tree | grep -E 'netty-codec(-compression)?'