CVE-2026-45536 Netty: Unix-socket fd receive leaks descriptors when peer sends two at once

Medium 4.0 Published Updated

A remote attacker can leak file descriptors in Netty applications using Unix sockets, potentially causing resource exhaustion and denial of service.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-45536?

CVE-2026-45536 is a medium-severity denial of service vulnerability in Netty Netty, published on 12 Jun 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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.

Weakness: CWE-772, CWE-200

Which versions are affected by CVE-2026-45536?

8 open source packages ship an affected version, including io.netty:netty-transport-native-epoll and io.netty:netty-transport-native-kqueue. It affects 1 product.

PackageAffectedFixed in
io.netty:netty-transport-native-epoll MavenAll versions4.1.135.Final
io.netty:netty-transport-native-epoll MavenAll versions4.1.135.Final
io.netty:netty-transport-native-epoll MavenFrom 4.2.0.Final4.2.15.Final
io.netty:netty-transport-native-epoll MavenFrom 4.2.0.Final4.2.15.Final
io.netty:netty-transport-native-kqueue MavenAll versions4.1.135.Final
io.netty:netty-transport-native-kqueue MavenAll versions4.1.135.Final
2 more packages
io.netty:netty-transport-native-kqueue MavenFrom 4.2.0.Final4.2.15.Final
io.netty:netty-transport-native-kqueue MavenFrom 4.2.0.Final4.2.15.Final

Products include Netty Netty.

How do I fix CVE-2026-45536?

Upgrade io.netty:netty-transport-native-epoll to a fixed version for your release line: 4.1.135.Final or 4.2.15.Final.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2026-45536 being exploited?

There is no known exploitation of CVE-2026-45536 in the wild and no public exploit code.

All Netty Netty vulnerabilities

Sources

Also known as CLEANSTART-2026-GT99821, CLEANSTART-2026-QW73146, CLEANSTART-2026-TR21269, CLEANSTART-2026-YZ64001, CLEANSTART-2026-ZM65468, DEBIAN-CVE-2026-45536 and 62 more.

Is CVE-2026-45536 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free