{"id":"CVE-2026-68415","summary":"xfrm: clear mode callbacks after failed mode setup","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: clear mode callbacks after failed mode setup\n\nxfrm_state_gc_task can run long after a failed IPTFS state setup. In the\nreproduced case, __xfrm_init_state() cached x-\u003emode_cbs, IPTFS setup\nreturned -ENOMEM before publishing mode_data, and the temporary module\nreference from xfrm_get_mode_cbs() was dropped immediately. The dead state\nthen kept x-\u003emode_cbs until deferred GC ran after xfrm_iptfs had been\nunloaded.\n\nClear x-\u003emode_cbs when mode init or clone fails before publishing\nmode_data. Those states never installed mode-specific state or the\nlong-term IPTFS module pin, so deferred GC has nothing mode-specific to\ndestroy and must not retain a callback table pointer past the temporary\nlookup reference.\n\nThe buggy scenario involves two paths, with each column showing the order\nwithin that path:\n\nfailed setup path:\n1. cache x-\u003emode_cbs\n2. mode setup fails before mode_data\n3. drop the temporary module ref\n4. dead state keeps x-\u003emode_cbs cached\n\nGC/unload path:\n1. xfrm_state_put() queues GC work\n2. xfrm_iptfs unloads later\n3. xfrm_state_gc_task runs\n4. GC dereferences stale x-\u003emode_cbs\n\nThis also covers the failed clone path where clone_state() returns before\npublishing mode_data.\n\nValidation reproduced this kernel report:\nKernel panic - not syncing: Fatal exception\nCONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y\nfailslab_stacktrace_filter matched xfrm_iptfs frames\nack_error=-12\nFAULT_INJECTION: forcing a failure\nBUG: unable to handle page fault\nWorkqueue: events xfrm_state_gc_task\nRIP: xfrm_state_gc_task+0x142/0x650\nModules linked in: esp4_offload xfrm_user [last unloaded: xfrm_iptfs]\nKernel panic - not syncing: Fatal exception","modified":"2026-08-12T04:24:32.464915624Z","published":"2026-08-10T12:04:35.425Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68415.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/2538bd3cd1ff5af655908469544ac7b7ae259386"},{"type":"WEB","url":"https://git.kernel.org/stable/c/9845a35986a658816f7752f7ebd7c455a4c7dfdf"},{"type":"WEB","url":"https://git.kernel.org/stable/c/c37a079230128a5237f45fb4e181bc069a5c2955"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68415.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68415"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4b3faf610cc63bfac972711635eafbca5e7d7117"},{"fixed":"9845a35986a658816f7752f7ebd7c455a4c7dfdf"},{"fixed":"c37a079230128a5237f45fb4e181bc069a5c2955"},{"fixed":"2538bd3cd1ff5af655908469544ac7b7ae259386"}]}],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-68415.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.14.0"},{"fixed":"6.18.42"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.1.6"}]}],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-68415.json"}}],"schema_version":"1.9.0"}