Skip to main content

Linux Kernel EUVDEUVD-2026-55584

| CVE-2026-68398 HIGH
2026-08-10 Linux GHSA-p572-44qq-qhm9
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

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

Requires a local user account (PR:L, AV:L); kernel UAF yields full C/I/A impact with no user interaction needed.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
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 - 02:46 vuln.today
CVSS changed
Aug 13, 2026 - 23:37 NVD
7.8 (HIGH)
Patch available
Aug 10, 2026 - 14:18 EUVD
CVE Published
Aug 10, 2026 - 12:04 cve.org
HIGH 7.8
CVE Published
Aug 10, 2026 - 12:04 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ppp: defer channel free to an RCU grace period to fix pppol2tp RX UAF

pppol2tp_recv() runs in the L2TP UDP-encap softirq RX path:

l2tp_udp_encap_recv() -> l2tp_recv_common() -> pppol2tp_recv() -> ppp_input(&po->chan)

It runs under rcu_read_lock() holding only an l2tp_session reference and takes NO reference on the internal PPP channel (struct channel, chan->ppp) that ppp_input() dereferences.

The pppox socket is SOCK_RCU_FREE, so 'po' and the embedded ppp_channel are RCU-safe. But the internal struct channel is a separate allocation that ppp_release_channel() frees with a plain kfree():

close(data socket) -> pppol2tp_release() -> pppox_unbind_sock() -> ppp_unregister_channel() -> ppp_release_channel() -> kfree(pch)

For a channel that is bound (PPPIOCGCHAN) but not attached to a ppp unit (no PPPIOCCONNECT, pch->ppp == NULL) and not bridged, teardown skips both ppp_disconnect_channel()'s synchronize_net() and ppp_unbridge_channels()'s synchronize_rcu(), so the kfree() has no grace period. rcu_read_lock() in pppol2tp_recv() does not protect against a plain kfree(), so an in-flight ppp_input() on one CPU can dereference the channel just freed by close() on another CPU.

The bug is reachable by an unprivileged user.

Defer the channel free to an RCU callback via call_rcu() so the grace period fences any in-flight ppp_input(). The disconnect and unbridge teardown paths already fence with synchronize_net()/synchronize_rcu(); call_rcu() does the same here without stalling the close() path.

AnalysisAI

Use-after-free in the Linux kernel's PPP-over-L2TP subsystem exposes a race condition between softirq RX processing and socket teardown, reachable by an unprivileged local user and capable of yielding full kernel memory corruption and privilege escalation. The pppol2tp_recv() function runs under rcu_read_lock() but dereferences an internal struct channel that close() can free with a plain kfree() when the channel was bound via PPPIOCGCHAN without a subsequent PPPIOCCONNECT, bypassing all RCU grace-period fences. Patches are available across multiple stable kernel branches; no public exploit has been identified at time of analysis and the vulnerability is not in CISA KEV.

Technical ContextAI

The flaw resides at the intersection of the Linux kernel's PPP subsystem (ppp_generic) and the L2TP UDP encapsulation receive path (l2tp_ppp). The call chain l2tp_udp_encap_recv() → l2tp_recv_common() → pppol2tp_recv() → ppp_input() runs in softirq context under rcu_read_lock(), holding only an l2tp_session reference. While the pppox socket (struct pppox_sock) is marked SOCK_RCU_FREE and therefore RCU-safe, the internal struct channel (pch) is a distinct heap allocation freed by ppp_release_channel() via a plain kfree(). When a channel has been bound with the PPPIOCGCHAN ioctl but never connected to a PPP unit (no PPPIOCCONNECT, leaving pch->ppp == NULL) and not bridged, the teardown path in ppp_unregister_channel() skips both the synchronize_net() barrier in ppp_disconnect_channel() and the synchronize_rcu() in ppp_unbridge_channels(). This creates a window where ppp_input() on one CPU can dereference the freed struct channel while close() on another CPU has already executed kfree(pch). The root cause is CWE-416 (Use After Free), though the input lists CWE as N/A. The fix defers the kfree() to an RCU callback via call_rcu(), aligning channel lifetime with RCU read-side critical sections. CPE data (cpe:2.3:a:linux:linux:*) confirms the Linux kernel across all versions containing the pppol2tp subsystem is affected.

RemediationAI

Upgrade to a patched kernel release: Linux 6.12.101, 6.6.148, or 6.18.42 for the respective active stable series, or track 7.2-rc4 for pre-release environments. Patch commits are available at https://git.kernel.org/stable/c/4bb84e964ff0fe0a171c965362de72f9820dbce9, https://git.kernel.org/stable/c/3ab32218d7182705dae5c86f13925f458072da2c, https://git.kernel.org/stable/c/c9574b8a8edeb4edd3ac6472c27ef7184bdb2baa, https://git.kernel.org/stable/c/06213c85d8c0994f786c093b8b2a517987943ca6, and https://git.kernel.org/stable/c/ec4215683e47424c9c4762fd3c60f552a3119142. Distribution maintainers (RHEL, Ubuntu, Debian, SUSE) should be monitored for backported stable packages. If patching cannot be applied immediately, a targeted compensating control is to unload and blacklist the l2tp_ppp kernel module (modprobe -r l2tp_ppp followed by adding 'blacklist l2tp_ppp' to /etc/modprobe.d/blacklist.conf), which entirely disables the vulnerable softirq RX path - note this will break any L2TP-based VPN tunnels or ISP PPPoL2TP sessions on the host. A secondary mitigation is restricting unprivileged user namespace access (sysctl -w kernel.unprivileged_userns_clone=0 on applicable distributions), which reduces socket creation surface but does not eliminate exploitation for locally logged-in accounts.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-55584 vulnerability details – vuln.today

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