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

ovpn: fix peer refcount leak in TCP error paths

When either the TCP RX or TX error path calls ovpn_peer_hold() followed
by schedule_work(&peer->tcp.defer_del_work), and the work item is already
pending from the other path, schedule_work() returns false and the work
runs only once. Since ovpn_tcp_peer_del_work() calls ovpn_peer_put()
exactly once, the extra reference taken by the losing path is never
dropped, leaking the peer object.

The race window:

CPU0 (strparser/RX error): CPU1 (tcp_tx_work/TX error):
ovpn_peer_hold() <- refcnt+1 ovpn_peer_hold() <- refcnt+2
schedule_work() <- queued schedule_work() <- NO-OP
(work already pending)
ovpn_tcp_peer_del_work runs:
ovpn_peer_del()
ovpn_peer_put() <- refcnt+1
<- peer never freed

Fix by checking the return value of schedule_work() in both paths and
calling ovpn_peer_put() to drop the extra reference if the work was
already pending. ovpn_peer_hold() is kept unconditional in the TX path
as it cannot fail at that point.
Published: 2026-08-10
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel’s OVPN implementation, a race condition exists between the RX and TX error handling paths. When each path calls ovpn_peer_hold() and attempts to schedule work for peer cleanup, the second call to schedule_work() is ignored because the work is already pending. The first path then releases the held reference once the deferred work runs, but the second path never releases its reference. This results in a reference count leak of the peer object and a potential memory leak that can grow unchecked over time.

Affected Systems

All Linux kernel builds that include the OVPN networking module default to this vulnerable logic. No specific kernel versions were listed as affected, so the condition applies to every kernel release prior to that containing the 2026-68122 fix.

Risk and Exploitability

The described vulnerability could lead to gradual memory consumption and eventual resource exhaustion, which might manifest as a denial‑of‑service at the kernel or system level. The CVSS score is 5.9, and the EPSS score indicates a likelihood of exploitation of less than 1%, thus the threat is considered moderate. The vulnerability is not listed in the CISA KEV catalog, indicating that no public exploitation campaigns have been observed yet. Attacks would require existing OVPN traffic with error conditions; thus the attack vector is likely indirect via malformed or corrupted connections to the OVPN service.

Generated by OpenCVE AI on August 13, 2026 at 08:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update that incorporates the 2026-68122 fix
  • If immediate kernel upgrade is unavailable, review the system’s OVPN usage and limit traffic to minimize error conditions that trigger the race
  • As a temporary workaround, consider disabling the OVPN driver on systems that do not require it or isolate OVPN traffic to a virtualized environment that can be monitored for abnormal memory usage

Generated by OpenCVE AI on August 13, 2026 at 08:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 12 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-911
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important


Mon, 10 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ovpn: fix peer refcount leak in TCP error paths When either the TCP RX or TX error path calls ovpn_peer_hold() followed by schedule_work(&peer->tcp.defer_del_work), and the work item is already pending from the other path, schedule_work() returns false and the work runs only once. Since ovpn_tcp_peer_del_work() calls ovpn_peer_put() exactly once, the extra reference taken by the losing path is never dropped, leaking the peer object. The race window: CPU0 (strparser/RX error): CPU1 (tcp_tx_work/TX error): ovpn_peer_hold() <- refcnt+1 ovpn_peer_hold() <- refcnt+2 schedule_work() <- queued schedule_work() <- NO-OP (work already pending) ovpn_tcp_peer_del_work runs: ovpn_peer_del() ovpn_peer_put() <- refcnt+1 <- peer never freed Fix by checking the return value of schedule_work() in both paths and calling ovpn_peer_put() to drop the extra reference if the work was already pending. ovpn_peer_hold() is kept unconditional in the TX path as it cannot fail at that point.
Title ovpn: fix peer refcount leak in TCP error paths
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-08-17T04:59:13.088Z

Reserved: 2026-07-30T09:28:09.369Z

Link: CVE-2026-68122

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-10T13:19:57.317

Modified: 2026-08-17T05:18:11.810

Link: CVE-2026-68122

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-10T11:58:42Z

Links: CVE-2026-68122 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T08:15:05Z

Weaknesses
  • CWE-665

    Improper Initialization

  • CWE-911

    Improper Update of Reference Count