CVE-2026-31421Linux内核net/sched模块的cls_fw组件存在空指针解引用漏洞。当在共享块上使用旧方法配置cls_fw过滤器,并处理带有非零skb标记的数据包时,由于未对block->q进行非空检查,导致内核崩溃。本地低权限攻击者可利用此漏洞造成拒绝服务。
该漏洞位于Linux内核的net/sched/cls_fw.c文件中。问题出在fw_classify()函数处理“旧方法”分类路径时,该路径会调用tcf_block_q()并尝试解引用q->handle指针。然而,当cls_fw过滤器被附加到共享块时,block->q指针会被设置为NULL。如果此时有一个带有非零主skb标记的数据包经过该过滤器,fw_classify()会执行旧方法逻辑,导致对NULL指针的解引用访问(偏移量0x38)。这会触发KASAN报告并导致内核恐慌。修复补丁通过在fw_change()函数中增加检查,拒绝在共享块上使用旧方法配置cls_fw,从而防止了NULL指针的解引用。