CVE-2026-46165
MediumCVSS 5.5Exploitation Probability (EPSS)
Low risk2th percentile - higher than 2% of all known CVEs
Summary
A vulnerability has been identified in the Linux kernel that leads to self-deadlock when removing tunnel ports in openvswitch. The issue arises from improper management of RCU and RTNL contexts during device removal.
Risk Assessment
This vulnerability can lead to system blockage during port removal, affecting network stability and performance. Under heavy load, it may result in serious service availability issues.
Recommendation
It is recommended to update the Linux kernel to a version where this vulnerability has been fixed to mitigate the risk of self-deadlock.
Other vulnerabilities in Linux kernel, openvswitch
See all- CVE-2026-89488Unknown
In the Linux kernel, the openvswitch module has a use-after-free in CT limit teardown. The CT limit pointer was not removed from readers nor protected by an RCU grace period, so packet processing could dereference freed state when the network namespace is torn down. An unprivileged user can trigger this from a user and network namespace.
- CVE-2026-89487Unknown
In the Linux kernel, openvswitch's queue_userspace_packet() calls skb_tx_error() on a packet it does not own and that is still being forwarded. This strips SKBFL_SHARED_FRAG from the live skb, causing a later local ESP-in-UDP delivery to decrypt in place over pages the sender does not own, enabling an unprivileged page-cache write (the "Fragnesia" primitive).
- CVE-2026-80994Unknown
In the Linux kernel, the openvswitch module has a use-after-free vulnerability involving the flow->mask pointer during flow deletion (CMD_DEL). The mask pointer is freed via RCU, but ovs_flow_cmd_fill_info() uses it after the flow is removed from the table without first taking the RCU read lock. This creates a race condition and can cause a kernel crash (KASAN slab-use-after-free) in the window between removal and info filling.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: openvswitch: vport: fix self-deadlock on release of tunnel ports vports are used concurrently and protected by RCU, so netdev_put() must happen after the RCU grace period. So, either in an RCU call or after the synchronize_net(). The rtnl_delete_link() must happen under RTNL and so can't be executed in RCU context. Calling synchronize_net() while holding RTNL is not a good idea for performance and system stability under load in general, so calling netdev_put() in RCU call is the right solution here. However, when the device is deleted, rtnl_unlock() will call netdev_run_todo() and block until all the references are gone. In the current code this means that we never reach the call_rcu() and the vport is never freed and the reference is never released, causing a self-deadlock on device removal. Fix that by moving the rcu_call() before the rtnl_unlock(), so the scheduled RCU callback will be executed when synchronize_net() is called from the rtnl_unlock()->netdev_run_todo() while the RTNL itself is already released.

