CVE-2026-31406 in Linux
要約
〜によって VulDB • 2026年05月10日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
xfrm: xfrm_nat_keepalive_net_fini() におけるキャンセル後のワーク再スケジューリングの修正
xfrm_nat_keepalive_net_fini() から cancel_delayed_work_sync() が呼び出された後、xfrm_state_fini() は __xfrm_state_delete() を介して残りの状態をフラッシュし、この関数は nat_keepalive_work を再スケジューリングするために xfrm_nat_keepalive_state_updated() を呼び出します。
以下は単純な競合状態のシナリオです:
cpu0 cpu1
cleanup_net() [ラウンド 1]
ops_undo_list() xfrm_net_exit() xfrm_nat_keepalive_net_fini() cancel_delayed_work_sync(nat_keepalive_work); xfrm_state_fini() xfrm_state_flush() xfrm_state_delete(x) __xfrm_state_delete(x) xfrm_nat_keepalive_state_updated(x) schedule_delayed_work(nat_keepalive_work); rcu_barrier(); net_complete_free(); net_passive_dec(net); llist_add(&net->defer_free_list, &defer_free_list);
cleanup_net() [ラウンド 2]
rcu_barrier(); net_complete_free() kmem_cache_free(net_cachep, net); nat_keepalive_work() // 解放済み net 上で実行
これを防止するため、cancel_delayed_work_sync() は disable_delayed_work_sync() に置き換えられました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.