Skip to main content

Linux Kernel CVE-2026-72404

| EUVDEUVD-2026-59303 HIGH
2026-08-15 Linux GHSA-xhxf-mw58-xfpx
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.0 HIGH

Race condition requiring precise cross-CPU timing warrants AC:H over vendor AC:L; local low-privilege access is confirmed; full kernel memory impact justified by UAF scope.

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: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
5.5 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 17, 2026 - 09:06 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
7.8 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:56 cve.org
HIGH 7.8
CVE Published
Aug 15, 2026 - 05:56 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

tipc: fix UAF in cleanup_bearer() due to premature dst_cache_destroy()

TIPC UDP media bearer teardown calls dst_cache_destroy() on its replicast caches before calling synchronize_net() to wait for concurrent RCU readers (transmitters) to finish:

static void cleanup_bearer(struct work_struct *work) { ... list_for_each_entry_safe(rcast, tmp, &ub->rcast.list, list) { dst_cache_destroy(&rcast->dst_cache); list_del_rcu(&rcast->list); kfree_rcu(rcast, rcu); } ... dst_cache_destroy(&ub->rcast.dst_cache); udp_tunnel_sock_release(ub->sk); synchronize_net(); ... }

This is highly buggy because dst_cache_destroy() immediately frees the per-CPU cache memory (free_percpu()) and releases the cached dst entries without any synchronization.

If a concurrent transmitter (e.g., tipc_udp_xmit()) is running on another CPU under RCU protection, it can call dst_cache_get() concurrently, leading to:

  1. Use-After-Free on the per-CPU cache pointer itself (crash).
  2. "rcuref - imbalanced put()" warning if it attempts to release a

dst that was concurrently released by dst_cache_destroy().

Furthermore, calling kfree(ub) immediately after synchronize_net() without closing the socket first (or waiting after closing it) leaves a window where a concurrent receiver (tipc_udp_recv()) could start after synchronize_net(), access ub, and suffer a UAF when kfree(ub) runs.

To fix this, we must defer dst_cache_destroy() and kfree(ub) until after we have ensured that no more readers can see the bearer/socket and all existing readers have finished:

  1. Defer rcast entry destruction (both dst_cache_destroy() and kfree())

to an RCU callback using call_rcu_hurry(). Using call_rcu_hurry() ensures the dst entries are released quickly.

  1. Release the bearer socket using udp_tunnel_sock_release() (stops

new receive readers).

  1. Call synchronize_net() to wait for all outstanding RCU readers

(both transmit and receive) to finish.

  1. Now that it is safe, call dst_cache_destroy() on the main bearer

cache, and free ub.

Note: 3) and 4) can be changed later in net-next to also use call_rcu_hurry() and get rid of the synchronize_net() latency.

AnalysisAI

Use-after-free in the Linux kernel's TIPC UDP media bearer teardown path allows a local low-privileged user to trigger a kernel memory corruption by racing bearer cleanup against concurrent UDP transmission or reception. The function cleanup_bearer() calls dst_cache_destroy() - which immediately frees per-CPU cache memory - before calling synchronize_net() to drain RCU readers, leaving concurrent tipc_udp_xmit() and tipc_udp_recv() callers able to dereference freed memory. The fix is available in stable commits and kernel 7.1.5; no public exploit has been identified at time of analysis, and EPSS at the 10th percentile reflects the niche exploitability profile.

Technical ContextAI

The vulnerable code resides in the TIPC (Transparent Inter-Process Communication) subsystem's UDP tunnel bearer implementation, specifically in net/tipc/udp_media.c. TIPC is a cluster-oriented IPC protocol commonly used in telecom and high-availability middleware; when configured with a UDP bearer, it tunnels cluster traffic over UDP sockets. The teardown function cleanup_bearer() is responsible for releasing replicast destination caches and the bearer socket. The root cause is a violation of RCU (Read-Copy-Update) ordering: dst_cache_destroy() calls free_percpu() to immediately reclaim per-CPU memory, but concurrent kernel threads holding RCU read locks (e.g., in tipc_udp_xmit() calling dst_cache_get()) may still be accessing that memory on another CPU. A secondary UAF occurs because kfree(ub) runs after synchronize_net() without first ensuring the UDP socket is fully closed, leaving tipc_udp_recv() able to start a new RCU read section after the synchronize_net() barrier completes but before kfree(ub) runs. Although the NVD entry lists CWE as N/A, the vulnerability is a textbook CWE-416 (Use After Free). The fix defers rcast destruction to an RCU callback via call_rcu_hurry() and reorders socket release before synchronize_net(). CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* covers the affected kernel range.

RemediationAI

The primary fix is to update to Linux kernel stable version 7.1.5 or 7.2-rc1 (or later), which incorporate the corrective commits 1c8393eefa3cadf4ca0b61119ad1321aa32d3c8c and 7116764ca53ff529335d7ab7c364a69f094b23a5 from the kernel stable tree. Distribution maintainers (Red Hat, SUSE, Canonical, etc.) should be monitored for backported packages. For systems that cannot be immediately patched and where TIPC is not required, blacklist the tipc module by adding 'blacklist tipc' to /etc/modprobe.d/tipc-blacklist.conf and running depmod - this eliminates the attack surface entirely at the cost of disabling cluster communication. If TIPC is operationally required, switching from a UDP bearer to an Ethernet bearer (l2 transport) avoids the vulnerable cleanup_bearer() UDP path, though this requires TIPC reconfiguration and a network topology review. Do not rely on standard firewall rules as a compensating control, as the vulnerability is triggered locally during bearer teardown rather than from inbound network traffic.

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

CVE-2026-72404 vulnerability details – vuln.today

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