CVE-2026-31406: 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().
Security readout for executives and security teams
Plain-English summary
A Linux kernel race can leave delayed XFRM NAT keepalive work running after its network object is freed. A local, low-privileged attacker may be able to trigger memory corruption, potentially compromising confidentiality, integrity, and availability. Systems using affected kernels with IPsec/XFRM networking or frequent network-namespace teardown deserve prompt review.
Executive priority
Treat as a high-priority kernel update for exposed Linux infrastructure, especially VPN gateways, container platforms, and shared systems. The required local privileges reduce urgency below an unauthenticated remote flaw, but kernel-level confidentiality, integrity, and availability impact warrants timely patching. Escalate systems where untrusted users or workloads can influence network namespaces.
Technical view
During network-namespace cleanup, cancel_delayed_work_sync() can complete before XFRM state deletion schedules nat_keepalive_work again. That work may later dereference the freed network object, creating a use-after-free condition. The upstream correction uses disable_delayed_work_sync() to prevent rescheduling. CVSS 3.1 is 7.8: local access, low complexity, low privileges, no user interaction.
Likely exposure
Exposure requires an affected Linux kernel and access to the vulnerable XFRM NAT keepalive cleanup path. Risk is likely higher on IPsec/NAT-T systems and environments that create and destroy network namespaces. The supplied affected-version data is insufficiently structured to establish reliable fixed-version boundaries; verify distribution packages against vendor advisories and referenced commits.
Exploitation context
The supplied record does not establish active exploitation, and CVE-2026-31406 is not listed as KEV in the bundle. The CVSS vector indicates local, low-privileged access rather than remote exploitation. Successful exploitation could potentially produce kernel memory corruption, crashes, or privilege-impacting compromise, but no working exploit evidence is provided.
Researcher notes
This is a delayed-work lifecycle race producing a potential use-after-free during XFRM network teardown. The bundle provides four stable-kernel commits but does not map them cleanly to release branches or demonstrate exploitability. Researchers should validate branch-specific ancestry, configuration prerequisites, reachable namespace teardown paths, and whether vendor backports contain the semantic fix.
Mitigation direction
Update to a vendor-supported kernel containing the referenced delayed-work disable fix.
Confirm the updated kernel is active after installation and any required reboot.
Prioritize IPsec, NAT-T, container, and network-namespace hosts for remediation.
If updates are unavailable, obtain product-specific mitigations directly from the Linux distribution vendor.
Validation and detection
Inventory running kernel versions across Linux hosts, not merely installed package versions.
Compare each kernel package with its distribution advisory and the referenced stable commits.
Check whether hosts use XFRM, IPsec NAT-T, or frequent network-namespace teardown.
Verify the vendor kernel source includes disable_delayed_work_sync() in xfrm_nat_keepalive_net_fini().
After remediation, confirm systems booted the fixed kernel and retired vulnerable kernel packages.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-31406 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
5Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.