Netty: Unix-socket fd receive leaks descriptors when peer sends two at once
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).
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Java / Kotlin (Maven) | io.netty:netty-transport-native-epoll | >= 4.2.0.Final, < 4.2.15.Final, < 4.1.135.Final | 4.2.15.Final, 4.1.135.Final |
| Java / Kotlin (Maven) | io.netty:netty-transport-native-kqueue | >= 4.2.0.Final, < 4.2.15.Final, < 4.1.135.Final | 4.2.15.Final, 4.1.135.Final |
Odnośniki
- Wektor CVSS
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L- Słabość (CWE)
CWE-200, CWE-772- Platforma
- Java / Kotlin (Maven)
- Paczka
io.netty:netty-transport-native-epoll, io.netty:netty-transport-native-kqueue- Ujawniono
- 08.06.2026
- Aktualizacja
- 11.10.2026 13:20
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-w573-9ffj-6ff9 - CC BY 4.0
Historia podatności: io.netty:netty-transport-native-kqueue
Wszystkie opisane podatności tej paczki (Java / Kotlin (Maven)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
To jedyna znana podatność tej paczki.
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.