🔍 CVE-2026-45536

4.0
CVSS Score
MEDIUM
2026-06-12
2026-06-17 10:52
✅ 완료

🇰🇷 한글 설명

Netty의 도메인 소켓 처리 과정에서 SCM_RIGHTS를 통해 전달된 파일 기술자(FD)가 누출되는 취약점입니다. 잘못된 제어 메시지 길이 검증으로 인해 설치된 FD가 닫히지 않고, 수신 루프가 정상 종료되며 FD가 영구적으로 유실됩니다.

💡 쉬운 설명

네트워크 연결을 통해 전달받은 시스템 파일 기술자가 제대로 정리되지 않고 쌓이는 문제입니다. 공격자가 이를 악용하면 시스템의 파일 기술자 고갈을 유발할 수 있습니다.

🇺🇸 원문 (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, netty_unix_socket_recvFd sets msg_control to `char control[CMSG_SPACE(sizeof(int))]` (line 940) — 24 bytes on 64-bit Linux. A peer-sent SCM_RIGHTS cmsg carrying two ints has cmsg_len = CMSG_LEN(8) = 24, which fits exactly with no MSG_CTRUNC, so the kernel installs both fds in the receiving process. The subsequent check `cmsg->cmsg_len == CMSG_LEN(sizeof(int))` (line 972, expected 20) fails, the branch that would read the fd is skipped, and neither installed fd is closed. The for(;;) loop calls recvmsg again (non-blocking → EAGAIN → Java maps to 0 → read loop exits normally), leaving two leaked fds per message. There is no MSG_CTRUNC handling. Reachable via Epoll/KQueue DomainSocketChannel when the application opts into DomainSocketReadMode.FILE_DESCRIPTORS (non-default). Versions 4.1.135.Final and 4.2.15.Final patch the issue.

📍 영향받는 시스템

Netty 4.1.135.Final 미만 및 4.2.15.Final 미만

⚔️ 공격 벡터

도메인 소켓 채널을 통해 악의적인 SCM_RIGHTS 제어 메시지를 전송하여 파일 기술자 누출 유도

🛡️ 대응 방법

Netty 4.1.135.Final 또는 4.2.15.Final 이상으로 업그레이드하여 패치 적용

🔧 검증 코드

출력된 Netty 버전이 4.1.135.Final 또는 4.2.15.Final보다 낮은지 확인하여 취약성 존재 여부 판단

Shell / Script
mvn dependency:tree | grep netty

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

NVIDIA Cloud Gaming Guest Driver for Linux