CVE-2025-71091Linux内核team驱动中存在一个链表双重删除漏洞。当team_queue_override_port_prio_changed()函数处理队列优先级变更时,未正确检查端口是否已启用,导致在端口已从链表中移除的情况下再次尝试删除,造成list_del corruption。该漏洞可被本地低权限用户触发,造成内核崩溃(拒绝服务)。
漏洞位于drivers/net/team/team_core.c文件的team_queue_override_port_prio_changed()函数中。问题流程如下:
1. 端口启用且queue_id != 0时,端口在qom_list中
2. 端口被禁用时调用team_port_disable() -> team_queue_override_port_del(),此时端口从列表中移除
3. 端口处于禁用状态,但queue_id仍 != 0,不在任何列表中
4. 当优先级变更时,team_queue_override_port_prio_changed()检查到port disabled && queue_id != 0,错误地调用删除操作
5. 由于端口已不在列表中,触发__list_del_entry_valid_or_report()中的BUG,导致内核崩溃
本地低权限用户可通过操作team端口的优先级设置触发此漏洞。