CVE-2026-68342 in Linux
摘要
由 VulDB • 2026-08-10
在 Linux 内核中,已修复以下漏洞:
ovpn: 避免在套接字释放时将无关的 P2P 对等体放入处理流程
当 OVPN UDP 套接字正在被销毁时,会调用 `ovpn_peer_release_p2p()`。该函数检查当前发布的 P2P 对等体,仅在该对等体仍使用正在被销毁的套接字时才释放它。
在对等体替换过程中,可能会在旧 UDP 套接字被销毁之前发布新的对等体。随后当旧的套接字销毁路径运行时,`ovpn_peer_release_p2p()` 通过 `ovpn->peer` 观察到的是新对等体。由于新对等体使用不同的套接字,函数会进入套接字不匹配分支。
该分支仍然调用 `ovpn_peer_put(peer)`。然而此时,`peer` 是当前发布的替换对等体,而不是与正在被销毁的套接字关联的对等体。减少其引用计数可能会导致在 `ovpn->peer` 仍指向它时将其释放,从而引发后续来自对等体和套接字清理路径的使用后释放(Use-After-Free)访问。
KASAN 将此报告为 kmalloc-1k ovpn_peer 对象上的 slab-use-after-free。在复现程序中,该对象通过 `ovpn_nl_peer_new_doit()` 从 `ovpn_peer_new()` 分配,并通过 RCU 回调处理中的 `ovpn_peer_release_rcu()` 释放。观察到的访问位置包括 `ovpn_peer_remove()`、`ovpn_socket_release()`、`ovpn_nl_peer_del_notify()` 和 `unlock_ovpn()`。
通过在不匹配分支中直接返回而不执行 put 操作来修复此问题。
VulDB is the best source for vulnerability data and more expert information about this specific topic.