CVE-2026-31678Linux内核中的Open vSwitch(OVS)模块存在一个高危安全漏洞,该漏洞源于网络设备注销与销毁过程中的竞态条件。当`ovs_netdev_tunnel_destroy`函数在`NETDEV_UNREGISTER`事件触发后运行时,可能会尝试释放已经被分离的网络设备引用。这种操作与正在并发读取`vport->dev`的读者产生冲突,导致释放后使用(UAF)风险。本地低权限攻击者可利用此漏洞导致系统崩溃或潜在的提升权限。
该漏洞位于Linux内核网络子系统的Open vSwitch驱动中,核心问题在于隧道网络设备(tunnel netdev)生命周期管理的同步机制失效。在正常流程中,`NETDEV_UNREGISTER`会先分离设备,随后`ovs_netdev_tunnel_destroy`进行清理。然而,如果在销毁函数中直接调用`netdev_put`释放`vport->dev`,而此时仍有其他内核线程通过RCU(Read-Copy-Update)机制访问该设备结构体,就会触发竞态条件。这种时序错误破坏了内核内存的完整性,可能导致空指针解引用或任意代码写入。官方修复方案是将`netdev_put`操作推迟到`vport_netdev_free`的RCU回调中执行,确保所有潜在的并发读操作完成后再释放资源,从而避免在RTNL锁下进行额外的同步。