| Title | Nettyにおける複数の脆弱性 |
|---|---|
| Summary | Nettyはプロトコルサーバーおよびクライアントの開発のためのネットワークアプリケーションフレームワークです。バージョン4.1.135.Finalおよび4.2.15.Final以前のnetty_unix_socket_recvFdは、msg_controlを`char control[CMSG_SPACE(sizeof(int))]`(940行目)に設定しています。これは64ビットLinuxで24バイトです。ピアから送信されたSCM_RIGHTSのcmsgは2つのintを運び、cmsg_len = CMSG_LEN(8) = 24となります。MSG_CTRUNCなしでちょうど収まるため、カーネルは受信プロセスに両方のfdをインストールします。続く`cmsg-cmsg_len == CMSG_LEN(sizeof(int))`(972行目、期待値20)のチェックは失敗し、fdを読み取る分岐がスキップされます。そのため、インストールされたfdはいずれもクローズされません。for(;;)ループは再びrecvmsgを呼び出し(ノンブロッキング→EAGAIN→Javaでは0にマッピング→読み取りループは正常に終了します)、結果としてメッセージごとに2つのfdがリークします。MSG_CTRUNCの処理は実装されていません。アプリケーションがDomainSocketReadMode.FILE_DESCRIPTORS(デフォルトではありません)を選択した場合、Epoll/KQueue DomainSocketChannel経由でこの問題に到達可能です。バージョン4.1.135.Finalおよび4.2.15.Finalでこの問題は修正されています。 |
| Possible impacts | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアの一部が停止する可能性があります。 |
| Solution | ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | June 12, 2026, midnight |
| Registration Date | June 15, 2026, 6:37 p.m. |
| Last Update | June 15, 2026, 6:37 p.m. |
| CVSS3.0 : 警告 | |
| Score | 4 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| Netty |
| Netty 4.1.135 未満 |
| Netty 4.2.0 以上 4.2.15 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月15日] 掲載 |
June 15, 2026, 6:37 p.m. |
| Summary | 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. |
|---|---|
| Publication Date | June 13, 2026, 12:16 a.m. |
| Registration Date | June 13, 2026, 4:17 a.m. |
| Last Update | June 15, 2026, 11:14 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:netty:netty:*:*:*:*:*:*:*:* | 4.1.135 | ||||
| cpe:2.3:a:netty:netty:*:*:*:*:*:*:*:* | 4.2.0 | 4.2.15 | |||