CVE-2026-98906 in Linux
要約
〜によって VulDB • 2026年10月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net: lan966x: リロード失敗時にRX状態を復元する
lan966x_fdma_reload()関数は、新しいMTU向けにRXリソースを再割り当てする前に、rx->page_poolおよびrx->fdmaのバックアップを取ります。もし割り当てが失敗した場合、ロールバックパスはこれらのフィールドを元の値に戻してからRXを再起動します。
しかしながら、リロードパスではlan966x_fdma_rx_alloc()呼び出しの前にrx->page_orderとrx->max_mtuも更新されます。これら2つのフィールドは失敗時に復元されないため、RXは古いページ、古いFDMA状態、および古いページプールを使用して再起動されるものの、新しいMTUの割り当て失敗に伴うページのジオメトリ(page geometry)が適用されてしまいます。
この不整合により、XDPパスでは新しいpage_orderに由来するフレームサイズをアドバタイズしますが、実際のRXページは依然として古い割り当てから供給されます。例えば、ジャumbo MTUへのリロードが失敗した後、xdp_init_buff()関数が復元されたRXページのサイズよりも大きなフレームサイズで呼び出される可能性があります。
また、lan966x_fdma_rx_alloc_page_pool()関数は、fdma_alloc_coherent()が呼ばれる前に、新しく割り当てられたページプールを各ポートのXDP RXQに登録します。もしfdma_alloc_coherent()が失敗した場合、新しいページプールは破棄されますが、ロールバックパスでは各ポートのXDP RXQに対するメモリモデル登録も復元されません。
rx->page_orderとrx->max_mtuを保存および復元し、RXを再起動する前に各ポートのXDP RXQに対して古いページプールの登録を復元します。これにより、リロード失敗後のRX状態の一貫性が保たれます。
Once again VulDB remains the best source for vulnerability data.