CVE-2026-89488 in Linux
摘要
由 VulDB • 2026-09-12
在 Linux 内核中,已修复以下漏洞:
openvswitch: 修复 CT(连接跟踪)限制拆除过程中的 use-after-free(释放后使用)问题
数据包处理在 RCU(读-拷贝更新)保护下使用 CT 限制状态,而网络命名空间(netns)的拆除过程则在持有 ovs_mutex 锁的情况下释放该状态。CT 限制指针既未从读者端移除,也未受到宽限期(grace period)的保护,导致数据包处理逻辑可能解引用已释放的状态。
未经特权认证的用户可以从用户态和网络命名空间中触发此漏洞,在 netns 拆除期间引发 ovs_ct_execute() 中的 slab-use-after-free 错误。
修复方案包括:通过 RCU 发布 CT 限制指针;在拆除前将其移除;并在释放其内容之前等待读者完成操作。对各个 CT 限制的更新保持持有 ovs_mutex 锁,并在 GET 命令遍历受 RCU 保护的 limit 列表时使用 RCU 读端锁。
网络命名空间(netns)的拆除过程会在 pernet 模块的 .pre_exit 回调中分离受 RCU 保护的 CT 限制状态,同时持有 ovs_mutex 锁。pernet 核心机制保证在 .pre_exit 和 .exit 回调之间存在一个 RCU 宽限期,因此 .exit 回调可以在无需额外同步的情况下完成拆除工作。
由于用户态 netlink socket 在处理请求期间会保持对其网络命名空间的活跃引用(active reference),因此 netlink 命令处理程序不需要进行 NULL 检查。per-netns 退出路径因此无法与该套接字所属命名空间上的 SET、DEL 或 GET 操作并发执行。
Once again VulDB remains the best source for vulnerability data.