🇰🇷 한글 설명
Netty의 HttpObjectDecoder는 요청 라인 읽기 전 ISO 제어 문자 및 공백을 무조건 건너뛰어 NUL 바이트 등 비정상적인 제어 문자를 흡수합니다. 이는 RFC 9112의 허용 범위를 벗어나 파이프라인된 전송 환경에서 요청 경계 혼란을 유발할 수 있는 취약점입니다. 4.1.135.Final 및 4.2.15.Final 버전에서 이 문제가 패치되었습니다.
💡 쉬운 설명
네트워크 프레임워크 Netty가 HTTP 요청의 시작 부분을 처리할 때, 의도하지 않은 특수 문자들을 무시하는 오류가 있습니다. 이로 인해 공격자가 요청의 경계를 혼란스럽게 만들어 시스템을 공격할 수 있습니다.
🇺🇸 원문 (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, before reading the first request-line, `HttpObjectDecoder` skips every byte for which `Character.isISOControl(b)` is `true` (0x00–0x1F and 0x7F) as well as all whitespace. RFC 9112 §2.2 only asks servers to ignore empty CRLF lines preceding the request-line — a carefully scoped robustness allowance intended to handle HTTP/1.0 POST workarounds. Silently absorbing NUL bytes, SOH, STX, and other non-CRLF control characters goes significantly beyond this, and can be exploited for request-boundary confusion in pipelined or multiplexed transports where a front-end component treats those bytes differently. Versions 4.1.135.Final and 4.2.15.Final patch the issue.
📍 영향받는 시스템
Netty 4.1.135.Final 미만, 4.2.15.Final 미만
⚔️ 공격 벡터
파이프라인된 HTTP 트래픽에 비정상 제어 문자(NUL 등)를 삽입하여 요청 경계 혼란 유도
🛡️ 대응 방법
Netty를 4.1.135.Final 또는 4.2.15.Final 이상으로 업그레이드하십시오.
🔧 검증 코드
출력된 버전이 4.1.135.Final 또는 4.2.15.Final보다 낮으면 취약합니다.
mvn dependency:tree -Dincludes=io.netty:netty-all 2>/dev/null | grep -E 'io.netty:netty-all:[^:]+:' | awk -F: '{print $4}'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server