Skip to main content

Linux Kernel EUVDEUVD-2026-55518

| CVE-2026-68137 CRITICAL
2026-08-10 Linux GHSA-8pjr-r8qw-rq6v
Critical
Disputed · 9.8 Vendor: Linux
Share

Severity by source

Sources disagree (Medium–Critical)
Vendor (Linux) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Local syscall access only (AV:L), a timing race gives AC:H, requires creating X.25 sockets on a non-default configured stack (PR:L); kernel UAF can yield full memory compromise (C/I/A:H).

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

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Aug 14, 2026 - 02:27 vuln.today
CVSS changed
Aug 13, 2026 - 23:37 NVD
9.8 (CRITICAL)
Patch available
Aug 10, 2026 - 14:18 EUVD
CVE Published
Aug 10, 2026 - 11:59 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 10, 2026 - 11:59 cve.org
CRITICAL 9.8

DescriptionCVE.org

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

net/x25: fix use-after-free in x25_kill_by_neigh()

x25_kill_by_neigh() walks the global X.25 socket list looking for sockets attached to a terminating neighbour. x25_list_lock protects list membership while the lookup is in progress, but it does not pin a socket's lifetime after the lock is dropped.

The function currently drops x25_list_lock before calling lock_sock(s). A concurrent close can run x25_release(), remove the same socket from x25_list, and drop the last socket reference in that window. The neighbour teardown path can then lock or inspect a freed struct sock/struct x25_sock.

Take sock_hold(s) while x25_list_lock still proves that the list entry is live, then drop the temporary reference after the socket has been locked, rechecked, and released. Recheck x25_sk(s)->neighbour after lock_sock(), because another path may have disconnected the socket before this path acquired the socket lock. Restart the list walk after each disconnect because the list lock was dropped and the previous iterator state may no longer be valid.

A QEMU/KASAN run against origin/master reproduced a slab-use-after-free in x25_kill_by_neigh().

AnalysisAI

Local kernel memory corruption in the Linux net/x25 subsystem allows an attacker to trigger a slab-use-after-free in x25_kill_by_neigh() by racing a neighbour (X.25 link) teardown against a socket close. The function drops x25_list_lock before calling lock_sock() without holding a socket reference, so a concurrent x25_release() can free the struct sock/x25_sock that the teardown path then dereferences, leading to a crash or potential privilege escalation. No public exploit identified at time of analysis; a KASAN reproducer under QEMU confirmed the flaw, and EPSS exploitation probability is very low (0.18%).

Technical ContextAI

The bug lives in the kernel's X.25 packet-layer implementation (net/x25), a legacy WAN/packet-switching protocol stack that is compiled as the CONFIG_X25 module and rarely loaded on modern systems. The root cause is a classic CWE-416 Use-After-Free arising from a lifetime/locking mismatch: x25_list_lock only guards membership of the global x25_list socket list, not the reference count of the sockets on it. Because the code released the list lock before acquiring the per-socket lock (lock_sock), the window between the two allowed another thread's x25_release() to remove the socket and drop its final reference. The fix takes sock_hold() while the list lock still proves the entry is live, then re-validates x25_sk(s)->neighbour after lock_sock() and restarts the walk after each disconnect since the dropped list lock invalidates the iterator. The affected object is struct sock/struct x25_sock allocated from the SLAB/SLUB allocator, hence the slab-use-after-free signature.

RemediationAI

Vendor-released patch: upgrade to a fixed stable kernel - 6.18.42, 6.12.101, 6.6.148, 7.1.6, or 7.2-rc5 (and the corresponding fix commits for older 4.x/5.x/6.x branches), as listed in the EUVD data. The upstream fixes are the git.kernel.org stable commits 3f4fe26c20c30bd5a2e2583e80685def0b27858c, 610678d4be94b619c751572e8a58de705592cd07, ec6d91a1bf2ebd767d3d43f6d249ee0ed3f4558a, 9aabda553184346f74810e2ee1d96920b4612e3f, and 5499e0602d2faafd42c580d25f615903c3fbe11b; apply the one matching your kernel series. Where immediate patching is not possible, the most effective compensating control is to prevent the vulnerable code from being reachable: blacklist and unload the x25 module (echo 'blacklist x25' into /etc/modprobe.d and 'install x25 /bin/true'), which fully removes the attack surface with no side effect on systems that do not use X.25 networking - the only trade-off is loss of X.25 packet-layer support, which is irrelevant to nearly all modern deployments. Additionally, restricting unprivileged users' ability to load network protocol modules on demand (kernel.modules_disabled or a stricter modprobe policy) limits an attacker's ability to auto-load the vulnerable module.

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-55518 vulnerability details – vuln.today

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