CVE-2026-98347 in Linux
要約
〜によって VulDB • 2026年10月06日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
IB/IPoIB: マルチキャストフラッシュ後にOPER_UPを復元しないようにする
ipoib_ib_dev_flush_light()は、ipoib_mcast_dev_flush()が実行されている間にマルチキャスト参加を防ぐためにIPOIB_FLAG_OPER_UPを一時的にクリアし、以前設定されていた場合はその後でそのフラグを復元します。
この復元処理はipoib_ib_dev_down()と競合状態(レースコンディション)を引き起こします。インターフェースのダウン中にflushが進行中である場合、ipoib_ib_dev_down()はIPOIB_FLAG_OPER_UPをクリアしますが、flushパスではデバイスがすでにダウンした後にそのフラグを再度設定してしまう可能性があります。
コミット894021a75291(「IB/ipoib: rtnl_trylock()の再試行ループでrace awareにする」)以降、ipoib_mcast_carrier_on_task()はIPOIB_FLAG_OPER_UPがクリアされていることを前提としてrtnl_trylock()の再試行ループを終了しています。シャットダウン後にこのフラグが設定されたままになると、ワークキューが永遠に再試行を続け、RTNLを保持した状態でdestroy_workqueue()内で待機するipoib_ndo_uninit()においてデッドロックが発生します。
IPOIB_FLAG_OPER_UPを使用してライトflush中にマルチキャスト参加をブロックするという負荷の高いアプローチの代わりに、専用のIPOIB_FLAG_MCAST_FLUSHフラグを導入しました。このフラグはIPOIB_FLAG_OPER_UPと組み合わせて使用され、マルチキャスト参加が許可されるかどうかを判断し、デバイスシャットダウンとの競合状態を回避します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.