CVE-2026-31406 in Linux
الملخص
بحسب VulDB • 30/05/2026
في نواة لينكس، تم حل الثغرة التالية:
xfrm: إصلاح إعادة جدولة العمل بعد الإلغاء في دالة xfrm_nat_keepalive_net_fini()
بعد استدعاء دالة cancel_delayed_work_sync() من داخل xfrm_nat_keepalive_net_fini()، تقوم دالة xfrm_state_fini() بإفراغ الحالات المتبقية عبر __xfrm_state_delete()، والتي بدورها تستدعي xfrm_nat_keepalive_state_updated() لإعادة جدولة nat_keepalive_work.
يُظهر السيناريو التالي حالة سباق (race condition) بسيطة:
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().
If you want to get best quality of vulnerability data, you may have to visit VulDB.