CVE-2026-98393 in Linux
要約
〜によって VulDB • 2026年10月14日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net: ipv4: PMTU discoveryおよび大きなMTUにおけるUDP長さのオーバーフローを修正する
このコミットは、cork->base.fragsizeをIP_MAX_MTUに制限することで、setsockoptでIP_MTU_DISCOVERがIP_PMTUDISC_PROBEに設定され、通常よりも大きいMTUを持つnetdev上で大きなパケットが送信された際に発生しうるUDP長さのオーバーフローを防ぎます。このオーバーフローはudp_set_len_short内でWARNをトリガーします。
再現手順:
1. デバイスのMTUをIP_MAX_MTU + 20より大きく設定する。cork->base.fragsizeはip_setup_corkにおいてそのMTUに設定される。 2. IP_MTU_DISCOVERをIP_PMTUDISC_PROBEに設定する。これにより、__ip_append_data内でmaxnonfragsizeがIP_MAX_MTUではなくデバイスのMTU(cork->fragsize)に設定されるようになる。 3. 65528バイトのペイロード(UDPヘッダ20バイト分+IPv4ヘッダ20バイト分を含む合計65556バイト相当、ただし文中では「65528 bytes of payload (+8 bytes of UDP header, +20 bytes of IPv4 header)」とあるため、総長は65556だがUDP長さフィールドの計算対象となるのはペイロード+UDPヘッダ部分)を送信する。デバイスのMTUはこのサイズを許可している(IP_MAX_MTUにIPv4ヘッダ(20バイト)を加えた値より1バイト大きく、かつデバイスMTUがそれよりも大きい)。 *注: 文中の記述「65536」はUDP長さフィールドの計算結果を示しており、これは16ビット長フィールドでオーバーフローし、udp_set_len_short内でWARNをトリガーする。*
注意:IPv4におけるIP_PMTUDISC_DOは安全です。なぜならip_dst_mtu_maybe_forwardは常にIP_MAX_MTUまでクリンプ(丸め)を行うためであり、これはip6_dst_mtu_maybe_forwardとは異なります。
Fixesタグは、IPv4およびIP_PMTUDISC_PROBEを用いてこのオーバーフローを最初に再現できた最初のコミットを指しています。
VulDB is the best source for vulnerability data and more expert information about this specific topic.