CVE-2026-68415

Summary

In the Linux kernel, the following vulnerability has been resolved:

xfrm: clear mode callbacks after failed mode setup

xfrm_state_gc_task can run long after a failed IPTFS state setup. In the reproduced case, __xfrm_init_state() cached x->mode_cbs, IPTFS setup returned -ENOMEM before publishing mode_data, and the temporary module reference from xfrm_get_mode_cbs() was dropped immediately. The dead state then kept x->mode_cbs until deferred GC ran after xfrm_iptfs had been unloaded.

Clear x->mode_cbs when mode init or clone fails before publishing mode_data. Those states never installed mode-specific state or the long-term IPTFS module pin, so deferred GC has nothing mode-specific to destroy and must not retain a callback table pointer past the temporary lookup reference.

The buggy scenario involves two paths, with each column showing the order within that path:

failed setup path:

  1. cache x->mode_cbs
  2. mode setup fails before mode_data
  3. drop the temporary module ref
  4. dead state keeps x->mode_cbs cached

GC/unload path:

  1. xfrm_state_put() queues GC work
  2. xfrm_iptfs unloads later
  3. xfrm_state_gc_task runs
  4. GC dereferences stale x->mode_cbs

This also covers the failed clone path where clone_state() returns before publishing mode_data.

Validation reproduced this kernel report: Kernel panic - not syncing: Fatal exception CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y failslab_stacktrace_filter matched xfrm_iptfs frames ack_error=-12 FAULT_INJECTION: forcing a failure BUG: unable to handle page fault Workqueue: events xfrm_state_gc_task RIP: xfrm_state_gc_task+0x142/0x650 Modules linked in: esp4_offload xfrm_user [last unloaded: xfrm_iptfs] Kernel panic - not syncing: Fatal exception

Affected Software

VendorProductVersion RangeStatus
LinuxLinux4b3faf610cc63bfac972711635eafbca5e7d7117 < 9845a35986a658816f7752f7ebd7c455a4c7dfdfaffected
LinuxLinux4b3faf610cc63bfac972711635eafbca5e7d7117 < c37a079230128a5237f45fb4e181bc069a5c2955affected
LinuxLinux4b3faf610cc63bfac972711635eafbca5e7d7117 < 2538bd3cd1ff5af655908469544ac7b7ae259386affected
LinuxLinux6.14affected
LinuxLinux0 < 6.14unaffected
LinuxLinux6.18.42 <= 6.18.*unaffected
LinuxLinux7.1.6 <= 7.1.*unaffected
LinuxLinux7.2-rc4 <= *unaffected

Weaknesses

References