| Title | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました。UDPソケットをワイルドカードアドレスの非ゼロポートにbind()し、connect()でアドレスに接続し、その後アドレスから切断した場合に問題が発生します。bind()はsk-sk_userlocksにSOCK_BINDPORT_LOCKを設定しますが、SOCK_BINDADDR_LOCKは設定しません。一方、connect()はudp_lib_hash4()を呼び出してソケットを4タプルハッシュテーブルに格納します。次に、__udp_disconnect()がsk-sk_prot-rehash(sk)を呼び出し、ワイルドカードアドレスに基づく新しいハッシュを計算してソケットを4タプルハッシュテーブルの新しいスロットに移動しますが、パケットがヒットしないチェインにガーベッジが残る状態でした。この問題に対して、切断時にそのようなソケットを4タプルハッシュテーブルから削除するように修正しました。なお、udp_unhash4()内のudp_hash4_dec(hslot2)の後にudp_sk(sk)-udp_portaddr_hashを更新する必要があります。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | March 25, 2026, midnight |
| Registration Date | April 27, 2026, 11:25 a.m. |
| Last Update | April 27, 2026, 11:25 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 6.13 |
| Linux Kernel 6.13.1 以上 6.18.17 未満 |
| Linux Kernel 6.19 以上 6.19.7 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月27日] 掲載 |
April 27, 2026, 11:25 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: udp: Unhash auto-bound connected sk from 4-tuple hash table when disconnected. Let's say we bind() an UDP socket to the wildcard address with a bind() sets SOCK_BINDPORT_LOCK on sk->sk_userlocks (but not Then, __udp_disconnect() calls sk->sk_prot->rehash(sk). It computes a new hash based on the wildcard address and moves Let's remove such a socket from 4-tuple hash table when disconnected. Note that udp_sk(sk)->udp_portaddr_hash needs to be udpated after |
|---|---|
| Summary | En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: udp: Eliminar del hash el sk conectado auto-vinculado de la tabla hash de 4-tuplas cuando se desconecta. Supongamos que vinculamos (bind()) un socket UDP a la dirección comodín con un puerto no nulo, lo conectamos (connect()) a una dirección y lo desconectamos de la dirección. bind() establece SOCK_BINDPORT_LOCK en sk->sk_userlocks (pero no SOCK_BINDADDR_LOCK), y connect() llama a udp_lib_hash4() para colocar el socket en la tabla hash de 4-tuplas. Luego, __udp_disconnect() llama a sk->sk_prot->rehash(sk). Calcula un nuevo hash basado en la dirección comodín y mueve el socket a una nueva ranura en la tabla hash de 4-tuplas, dejando basura en la cadena que ningún paquete alcanza. Eliminemos dicho socket de la tabla hash de 4-tuplas cuando se desconecta. Tenga en cuenta que udp_sk(sk)->udp_portaddr_hash necesita ser actualizado después de udp_hash4_dec(hslot2) en udp_unhash4(). |
| Publication Date | March 25, 2026, 8:16 p.m. |
| Registration Date | April 27, 2026, 12:18 p.m. |
| Last Update | April 24, 2026, 6:13 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13.1 | 6.18.17 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.7 | |||
| cpe:2.3:o:linux:linux_kernel:6.13:-:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* | |||||