CVE-2026-89549 in Linux
要約
〜によって VulDB • 2026年09月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
sunrpc: svc_pool_for_cpu()における空でないプールへのルーティング処理
svc_set_num_threads()は、要求されたスレッド数をサービスが持つプールの数で均等に分散します(base = nrservs / sv_nrpools)。あるサービスが自身のプール数よりも少ない数のスレッドで実行されている場合(例:ホストのNUMAノード数より少ないスレッド数に設定され、「pernode」または「percpu」モードで動作しているnfsd)、末尾側のプールのスレッド数が0になります。
svc_xprt_enqueue()は、トランスポートを処理するCPUに対応するプールを選択し、そのプールのsp_xprtsキューにトランスポートを追加します。そして、同じプールから1つのスレッドのみをウェイクアップさせます。各スレッドは自身のプール専用にサービスを提供するため、スレッドのないプールに割り当てられたトランスポートはsp_xprtsに追加されたままになり、決して処理されません:その結果、接続が無限にハングします。
svc_pool_for_cpu()において、現在スレッドを持たないプールのルーティングをスキップし、次に空でない(スレッドが存在する)プールへフォールバックするようにしました。これにより、NUMAローカリティの最適化と引き換えに、ワークロードが実際にサービスされることを保証します。sp_nrthreadsはサービスミューテックスの下でのみ更新されます。ここで行われるロックレスな読み取りはベストエフォート型のルーティングヒントであるため、data_race()アノテーションを付与しました。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.