CVE-2026-43232Linux内核中的farsync驱动存在释放后重用漏洞。在移除FarSync T-series网卡设备时,`fst_card_info`结构体在`fst_remove_one`函数中被释放,但相关的tasklet任务(如`fst_tx_task`)可能仍在执行或等待调度。这种竞态条件导致tasklet处理函数在内存释放后继续访问该结构体,从而触发内核崩溃或可能被利用于权限提升。攻击者可利用此漏洞造成系统拒绝服务或进一步获取内核权限。
该漏洞源于Linux内核farsync驱动卸载逻辑与软中断处理之间的竞态条件。当`fst_remove_one()`函数被调用以移除PCI设备时,它执行`unregister_hdlc_device()`并最终调用`kfree(card)`释放了`fst_card_info`对象。然而,代码逻辑存在缺陷,并未在释放内存前确保`fst_tx_task`和`fst_int_task`这两个tasklet已被彻底禁用或执行完毕。在多核处理器环境下,如果中断处理程序或网络传输流程在释放前调度了这些tasklet,它们将在`kfree`操作之后继续运行。当`fst_process_tx_work_q`或`fst_process_int_work_q`试图访问已释放的`card`指针及其成员时,会触发slab-use-after-free错误。KASAN追踪显示问题发生在`do_bottom_half_tx`函数中,读取了位于已释放区域28字节偏移处的数据。这种内存破坏不仅会导致内核崩溃(DoS),若被精心利用,还可能覆盖内核关键数据结构,从而实现本地权限提升。