CVE-2026-22987CVE-2026-22987是Linux内核中的一个中等严重性安全漏洞,存在于net/sched/act_api.c文件中的tcf_idrinfo_destroy()函数。该漏洞在网络命名空间(netns)销毁期间触发,当tcf_idrinfo_destroy()函数尝试遍历action IDR(Identifier Dictionary)时,可能会遇到ERR_PTR(-EBUSY)错误指针。随后,函数错误地将这个错误指针传递给tc_act_in_hw()函数,导致无效内存解引用,最终引发系统崩溃。此漏洞需要本地低权限攻击者即可触发,无需用户交互,可造成可用性影响(拒绝服务)。攻击向量为本地,CVSS评分为5.5,属于中等严重级别。
该漏洞的根本原因在于tcf_idrinfo_destroy()函数在网络命名空间销毁过程中缺乏对IDR条目的有效验证。具体来说,当系统执行netns teardown操作时,tcf_idrinfo_destroy()会遍历action IDR中的所有条目。然而,某些条目可能存储的是ERR_PTR(-EBUSY)这样的错误指针,而不是有效的tc_action结构体指针。当函数将这些错误指针传递给tc_act_in_hw()时,会导致空指针解引用或无效内存访问,从而触发内核崩溃(Crash)。修复方案需要在遍历IDR时添加对ERR_PTR条目的检查,确保只对有效的tc_action指针调用tc_act_in_hw(),从而避免在错误指针上执行解引用操作。攻击者可通过本地低权限账户触发网络命名空间的销毁过程来利用此漏洞。