FlawAtlas
Search the atlas
CVE-2026-31406 High

xfrm: Fix work re-schedule after cancel in xfrm_nat_keepalive_net_fini()

In the Linux kernel, the following vulnerability has been resolved: xfrm: Fix work re-schedule after cancel in xfrm_nat_keepalive_net_fini() After cancel_delayed_work_sync() is called from xfrm_nat_keepalive_net_fini(), xfrm_state_fini() flushes remaining states via __xfrm_state_delete(), which calls xfrm_nat_keepalive_state_updated() to re-schedule nat_keepalive_work. The following is a simple race scenario: cpu0 cpu1 cleanup_net() [Round 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() [Round 2] rcu_barrier(); net_complete_free() kmem_cache_free(net_cachep, net); nat_keepalive_work() // on freed net To prevent this, cancel_delayed_work_sync() is replaced with disable_delayed_work_sync().

Exploit probability 0.2%
Published April 6, 2026
Required by Not available
Last source change July 15, 2026

02 / AFFECTED SOFTWARE

Affected packages

Unknown Unknown
Linux Kernel

03 / CONNECTIONS

Connected vulnerabilities

related OPENSUSE-SU-2026:20826-1
related SUSE-SU-2026:21519-1
related SUSE-SU-2026:21520-1
related SUSE-SU-2026:21521-1
related SUSE-SU-2026:21522-1
related SUSE-SU-2026:21523-1
related SUSE-SU-2026:21524-1
related SUSE-SU-2026:21525-1
related SUSE-SU-2026:21526-1
related SUSE-SU-2026:21527-1
related SUSE-SU-2026:21528-1
related SUSE-SU-2026:21529-1
related SUSE-SU-2026:21530-1
related SUSE-SU-2026:21531-1
related SUSE-SU-2026:21532-1
related SUSE-SU-2026:21533-1
related SUSE-SU-2026:21554-1
related SUSE-SU-2026:21555-1
related SUSE-SU-2026:21556-1
related SUSE-SU-2026:21557-1
related SUSE-SU-2026:21558-1
related SUSE-SU-2026:21562-1
related SUSE-SU-2026:21563-1
related SUSE-SU-2026:21591-1
related SUSE-SU-2026:21598-1
related SUSE-SU-2026:21841-1
related SUSE-SU-2026:21845-1
related SUSE-SU-2026:21860-1

04 / EVIDENCE

Source records

Open Source Vulnerabilities CVE-2026-31406

In the Linux kernel, the following vulnerability has been resolved: xfrm: Fix work re-schedule after cancel in xfrm_nat_keepalive_net_fini() After cancel_delayed_work_sync() is called from xfrm_nat_keepalive_net_fini(), xfrm_state_fini() flushes remaining states via __xfrm_state_delete(), which calls xfrm_nat_keepalive_state_updated() to re-schedule nat_keepalive_work. The following is a simple race scenario: cpu0 cpu1 cleanup_net() [Round 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() [Round 2] rcu_barrier(); net_complete_free() kmem_cache_free(net_cachep, net); nat_keepalive_work() // on freed net To prevent this, cancel_delayed_work_sync() is replaced with disable_delayed_work_sync().

View original source

05 / REFERENCES

Further evidence