KernelScan.io

HIGH

ovpn Transmit UAF

CVE-2026-45929

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.4MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: ovpn: fix possible use-after-free in ovpn_net_xmit When building the skb_list in ovpn_net_xmit, skb_share_check will free the original skb if it is shared. The current implementation continues to use the stale skb pointer for subsequent operations: - peer lookup, - skb_dst_drop (even though all segments produced by skb_gso_segment will have a dst attached), - ovpn_peer_stats_increment_tx. Fix this by moving the peer lookup and skb_dst_drop before segmentation so that the original skb is still valid when used. Return early if all segments fail skb_share_check and the list ends up empty. Also switch ovpn_peer_stats_increment_tx to use skb_list.next; the next patch fixes the stats logic.

02

Engine v0.2.0

Risk summary

A use-after-free vulnerability in the OpenVPN kernel module's transmit path can lead to memory corruption when processing GSO packets with shared socket buffers. This affects systems using the kernel-space OpenVPN implementation and could result in kernel crashes or potential privilege escalation.

Affecteddrivers/net/ovpn/io.c (OpenVPN kernel module)

Vulnerability analysis

The vulnerability occurs in ovpn_net_xmit() when processing GSO packets. The skb_share_check() function may free the original skb if it's shared, but the code continues using the stale pointer for peer lookup, destination dropping, and statistics. The fix moves these operations before segmentation and adds proper empty list handling. Attack requires local access and ability to configure OpenVPN interfaces, typically needing CAP_NET_ADMIN privileges.

03

BranchFixed inPatch commit
6.186.18.143e4fbcb4e078
6.196.19.4442915c96a9b
mainline7.0a5ec7baa44ea