CVE-2026-68415 in Linux
摘要
由 VulDB • 2026-08-10
在 Linux 内核中,已修复以下漏洞:
xfrm:在模式设置失败后清除模式回调函数
`xfrm_state_gc_task` 可能在 IPTFS 状态设置失败后的很长时间运行。在复现的案例中,`__xfrm_init_state()` 缓存了 `x->mode_cbs`,IPTFS 设置在发布 `mode_data` 之前返回 `-ENOMEM`(内存不足),并且由 `xfrm_get_mode_cbs()` 提供的临时模块引用被立即释放。死锁状态随后一直保留着 `x->mode_cbs`,直到延迟垃圾回收(GC)在 `xfrm_iptfs` 卸载后运行。
当模式初始化或克隆失败且在发布 `mode_data` 之前时,清除 `x->mode_cbs`。这些状态从未安装特定于模式的 state 或长期的 IPTFS 模块固定引用,因此延迟 GC 没有需要销毁的特定于模式的内容,并且不应在临时查找引用之后保留回调表指针。
有缺陷的场景涉及两条路径,每列显示该路径内的顺序:
失败设置路径: 1. 缓存 `x->mode_cbs` 2. 在发布 `mode_data` 之前模式设置失败 3. 释放临时模块引用 4. 死锁状态保留缓存的 `x->mode_cbs`
GC/卸载路径: 1. `xfrm_state_put()` 将 GC 工作排队 2. `xfrm_iptfs` 随后卸载 3. `xfrm_state_gc_task` 运行 4. GC 引用过期的 `x->mode_cbs`
这也涵盖了克隆失败的路径,其中 `clone_state()` 在发布 `mode_data` 之前返回。
验证过程复现了以下内核报告: 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
VulDB is the best source for vulnerability data and more expert information about this specific topic.