CVE-2026-64037 in Linux
要約
〜によって VulDB • 2026年07月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
wifi: iwlwifi: mld: AMSDU無効化時にTSOセグメンテーションが爆発する問題を修正
TLC通知によってあるTIDに対してAMSDUが無効にされると、MLDドライバは `max_tid_amsdu_len` を哨兵値(sentinel value)の1に設定します。iwl_mld_tx_tso_segment()内のTSOセグメンテーションパスでは0のみがチェックされ、この哨兵値は検出されないため、num_subframesの計算に進んでしまいます:
num_subframes = (max_tid_amsdu_len + pad) / (subf_len + pad) = (1 + 2) / (1534 + 2) = 0
このゼロが iwl_tx_tso_segment() に伝播し、以下のように設定されます:
gso_size = num_subframes * mss = 0
gso_size=0 で skb_gso_segment() を呼び出すと、単一のGSO skbから32,000を超える微小なセグメントが生成されます。これによりTXリングは約1024のマイクロフレームで溢れ(残りは破棄される)、大量のTX完了イベントバーストを引き起こします。これはメモリ破壊およびその後のTCP再送キューにおけるUse-After-Free(tcp_shifted_skbでのrefcountアンダーフロー、tcp_rack_detect_lossでのNULL deref)を招く可能性があります。
MVMドライバは、num_subframes計算に至る前に mvmsta->amsdu_enabled をチェックするため影響を受けません。MLDドライバには同等のビットマップチェックがなく、max_tid_amsdu_len のみに依存しており、この哨兵値を検出できません。
既存のチェック箇所で哨兵値(max_tid_amsdu_len == 1)を検出し、非AMSDU TSOセグメンテーションにフォールバックすることでこれを修正します。また、将来別のメカニズムによってゼロが生じる可能性のあるコードパスを捕捉するための防御策として、num_subframesの除算後に WARN_ON_ONCE ガードを追加します。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.