Description
In the Linux kernel, the following vulnerability has been resolved:

ovpn: tcp - don't deref NULL sk_socket member after tcp_close()

When deleting a peer in case of keepalive expiration, the peer is
removed from the OpenVPN hashtable and is temporary inserted in a
"release list" for further processing.

This happens in:
ovpn_peer_keepalive_work()
unlock_ovpn(release_list)

This processing includes detaching from the socket being used to
talk to this peer, by restoring its original proto and socket
ops/callbacks.

In case of TCP it may happen that, while the peer is sitting in
the release list, userspace decides to close the socket.
This will result in a concurrent execution of:

tcp_close(sk)
__tcp_close(sk)
sock_orphan(sk)
sk_set_socket(sk, NULL)

The last function call will set sk->sk_socket to NULL.

When the releasing routine is resumed, ovpn_tcp_socket_detach()
will attempt to dereference sk->sk_socket to restore its original
ops member. This operation will crash due to sk->sk_socket being NULL.

Fix this race condition by testing-and-accessing
sk->sk_socket atomically under sk->sk_callback_lock.
Published: 2026-05-27
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a race condition in the Linux kernel's OpenVPN TCP implementation that leads to a NULL pointer dereference. When an OpenVPN peer is removed for keep‑alive expiration while its TCP socket has been closed by the operating system, the cleanup code dereferences sk->sk_socket after it has been set to NULL, which crashes the kernel. This results in a denial of service by triggering a kernel panic. The CVSS score of 5.5 and the EPSS score of less than 1% indicate a low exploitation likelihood. The vulnerability is not listed in the CISA KEV catalog, suggesting no publicly known exploits. Exploitation would involve creating a race between the cleanup routine and a socket close; this may require manipulating the OpenVPN process or influencing keep‑alive timing.

Affected Systems

Any Linux distribution that includes the Linux kernel before the fix identified by commit 94560267d6c41b1ff3fafbab726e3f8a55a6af34 (or the subsequent merge commit b9142cf4e066c825ec68752a7dcaceda700bbe26) is affected. Distributions running a kernel that still contains the earlier OpenVPN TCP code will be vulnerable. The issue does not affect user‑land OpenVPN binaries directly; it is a kernel‑level race in the TCP subsystem.

Risk and Exploitability

The vulnerability can trigger a kernel crash, inducing a denial of service. With a CVSS score of 5.5, an EPSS score below 1%, and no listing in the CISA KEV catalog, the likelihood of exploitation is low. Exploitation requires coordinating a race between the keep‑alive cleanup path and a userspace socket close, necessitating control over the OpenVPN process or manipulating its keep‑alive timing.

Generated by OpenCVE AI on August 14, 2026 at 02:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the OpenVPN TCP NULL dereference fix, addressing the CWE-476 null pointer dereference weakness (commit 94560267d6c41b1ff3fafbab726e3f8a55a6af34).
  • Restart the OpenVPN service (or reboot the system) so the updated kernel code is active.
  • Reduce OpenVPN client keep‑alive timeout values or configure the VPN to limit keep‑alive intervals to mitigate the race window.

Generated by OpenCVE AI on August 14, 2026 at 02:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 13 Aug 2026 23:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-674

Thu, 28 May 2026 12:15:00 +0000


Wed, 27 May 2026 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476
CWE-674

Wed, 27 May 2026 14:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ovpn: tcp - don't deref NULL sk_socket member after tcp_close() When deleting a peer in case of keepalive expiration, the peer is removed from the OpenVPN hashtable and is temporary inserted in a "release list" for further processing. This happens in: ovpn_peer_keepalive_work() unlock_ovpn(release_list) This processing includes detaching from the socket being used to talk to this peer, by restoring its original proto and socket ops/callbacks. In case of TCP it may happen that, while the peer is sitting in the release list, userspace decides to close the socket. This will result in a concurrent execution of: tcp_close(sk) __tcp_close(sk) sock_orphan(sk) sk_set_socket(sk, NULL) The last function call will set sk->sk_socket to NULL. When the releasing routine is resumed, ovpn_tcp_socket_detach() will attempt to dereference sk->sk_socket to restore its original ops member. This operation will crash due to sk->sk_socket being NULL. Fix this race condition by testing-and-accessing sk->sk_socket atomically under sk->sk_callback_lock.
Title ovpn: tcp - don't deref NULL sk_socket member after tcp_close()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-05-27T12:17:34.500Z

Reserved: 2026-05-13T15:03:33.085Z

Link: CVE-2026-45918

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Undergoing Analysis

Published: 2026-05-27T14:17:06.690

Modified: 2026-06-24T17:22:46.393

Link: CVE-2026-45918

cve-icon Redhat

Severity :

Publid Date: 2026-05-27T00:00:00Z

Links: CVE-2026-45918 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-14T03:00:04Z

Weaknesses