CVE-2026-98025 in Linux情報

要約

〜によって VulDB • 2026年09月25日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

net: usb: cx82310_eth: リブートセンティネール(値 0xffff)後の URB をドロップし、partial_data のヒープオーバーフローを防止する

長さのセンティネールである 0xffff はルーターのリブートを検出し、イーサネットモードの有効化をスケジュールしますが、その後制御はループ本体の残りの部分へ移行してしまいます。次のチェック処理は以下の通りです:

} else if (len > CX82310_MTU) {

これは直前に一致した `if` 文に対する `else` ブロックであり、`len == 0xffff` の場合には決して実行されません。通常不完全なパケットの保存パスを制限する MTU バound が静かに回避されてしまいます。

`skb->len` よりも常に真となる 0xffff(rx_urb_size は 4096)において、不完全なパケット分岐は `dev->partial_len = skb->len` のバイト数を `dev->partial_data` に保存します。`partial_data` は `kmalloc(hard_mtu)` すなわち `kmalloc(CX82310_MTU + 2) = 1516 バイト` で割り当てられていますが、2バイトのヘッダ処理後の `skb->len` は最大で 4094 になる可能性があります。したがって、[0xff, 0xff] から始まる 4096 バイトの URB を送信するデバイスは、1516 バイト用に割り当てられたバッファに 4094 バイトのデバイス提供データをコピーすることになり、要求されたサイズを 2578 バイト超えてしまいます。

次の URB では、同じく 1516 バイトのバッファから `dev->partial_len`(4094)を読み取り、新しい URB の約 4KB の skb から `dev->partial_rem`(65535 - 4094 = 61441)を読み取ります。これらは両方とも割り当て領域を大幅に超えており、結合された結果がネットワークスタックへ 64KB の「フレーム」として渡されます。

再有効化ワークのスケジュール後に `rx_fixup` から脱出します;リブートマーカー URB の残りは意味のあるパケットデータではありません。これにより、他のすべての経路で既に MTU チェックを通過しているため、保存パスにおける不変条件(partial_len < CX82310_MTU + 2)が回復されます。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-410249

EPSS

0.00000

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!