Skip to main content

Linux Kernel CVE-2026-68341

| EUVDEUVD-2026-55442 HIGH
2026-08-10 Linux GHSA-998j-mxm9-vqxj
8.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
8.8 HIGH

AV:N and PR:L reflect ovpn's role as a network-facing kernel module requiring an authenticated peer session; C/I/A:H captures the theoretical worst-case kernel UAF impact, though DoS is the more probable real-world outcome.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 14, 2026 - 03:06 vuln.today
CVSS changed
Aug 13, 2026 - 23:37 NVD
8.8 (HIGH)
Patch available
Aug 10, 2026 - 14:18 EUVD
CVE Published
Aug 10, 2026 - 12:03 cve.org
HIGH 8.8
CVE Published
Aug 10, 2026 - 12:03 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ovpn: fix use after free in unlock_ovpn()

unlock_ovpn() iterates over the release_list using llist_for_each_entry() and drops the peer reference inside the loop body via ovpn_peer_put().

If this drops the last reference, the peer is eventually freed. However, llist_for_each_entry() reads peer->release_entry.next in the loop advance expression, which runs after the body. By that time the peer may have already been freed, resulting in a use after free when advancing to the next list entry.

Fix this by using llist_for_each_entry_safe(), which caches the next pointer before executing the loop body.

AnalysisAI

Use-after-free in the ovpn (in-kernel OpenVPN data channel) module of the Linux kernel, present from version 6.16 onward, allows an authenticated remote VPN peer to trigger kernel memory corruption during peer cleanup. The flaw in unlock_ovpn() occurs because llist_for_each_entry() reads the next list pointer after ovpn_peer_put() may have already freed the peer structure, producing a classic UAF condition in kernel space. No public exploit code has been identified and EPSS probability is very low at 0.21% (11th percentile), though the theoretical worst-case per CVSS 3.1 is full kernel compromise (C:H/I:H/A:H).

Technical ContextAI

The ovpn module is the in-kernel OpenVPN data channel driver merged into Linux mainline at version 6.16 (introduced via commit 80747caef33d77f5c1b3d24644e6d7dae69066b5). It offloads OpenVPN packet processing from userspace into the kernel for improved throughput, replacing the traditional tun/tap userspace approach. The vulnerable function unlock_ovpn() iterates over a linked list of peers scheduled for release using llist_for_each_entry(). Inside the loop body, ovpn_peer_put() decrements the peer's reference count; when the count reaches zero, the kernel allocator frees the peer structure. The macro llist_for_each_entry() is not iterator-safe: it reads peer->release_entry.next in the loop's advance expression, which executes AFTER the loop body. At that point, the peer struct may already be freed, and reading from freed kernel memory constitutes CWE-416 (Use After Free). Depending on allocator state and kernel mitigations, this can result in a kernel panic, information leakage of kernel memory, or in a worst-case scenario, exploitable memory corruption. The upstream fix replaces llist_for_each_entry() with llist_for_each_entry_safe(), which pre-caches the next pointer before the body executes, making it safe to free the current entry during iteration.

RemediationAI

The primary fix is to upgrade to a patched kernel: Linux 7.2-rc5, 6.18.42, or 7.1.6, depending on the stable branch in use. Three upstream fix commits are available for cherry-picking into distribution kernels: https://git.kernel.org/stable/c/5b96227c0e8b212b74838424c929fc889aedb555, https://git.kernel.org/stable/c/4cdb209f12a89c5faf9be0c45edb90ccdf65db0c, and https://git.kernel.org/stable/c/e1ad6fe5db719874efa45b2caf9934552e09fc43. For systems where immediate kernel upgrade is not feasible and the ovpn data channel is not operationally required, blacklisting the module (echo 'blacklist ovpn' >> /etc/modprobe.d/blacklist.conf followed by modprobe -r ovpn) eliminates the attack surface entirely; the trade-off is loss of kernel-offloaded OpenVPN performance, with the service falling back to the unaffected userspace tun/tap path. On systems where ovpn must remain active, restrict VPN peer registration to explicitly trusted and authenticated sources using firewall rules limiting which IP ranges may establish VPN sessions, reducing the pool of potential attackers to PR:L network peers.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

CVE-2026-68341 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy