Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-64543

CVE-2026-64543: Linux Kernel Use-After-Free Vulnerability

CVE-2026-64543 is a use-after-free vulnerability in the Linux kernel TIPC subsystem that allows memory corruption via UDP bearer cleanup. This article covers the technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-64543 Overview

CVE-2026-64543 is a use-after-free vulnerability in the Linux kernel's Transparent Inter-Process Communication (TIPC) subsystem. The flaw resides in tipc_disc_rcv() in net/tipc/discover.c, where the discoverer object b->disc can be dereferenced in an RX softirq after bearer_disable() frees it with a plain kfree(). Layer 2 bearers are protected by synchronize_net() in tipc_disable_l2_media(), but the User Datagram Protocol (UDP) bearer defers cleanup to the cleanup_bearer() workqueue, freeing the discoverer without a Read-Copy-Update (RCU) grace period. The issue is reachable from an unprivileged user namespace when CONFIG_TIPC and CONFIG_TIPC_MEDIA_UDP are enabled.

Critical Impact

A local unprivileged attacker can trigger memory corruption in kernel context, enabling privilege escalation to root or a full denial of service.

Affected Products

  • Linux kernel builds with CONFIG_TIPC enabled
  • Linux kernel builds with CONFIG_TIPC_MEDIA_UDP enabled
  • Distributions permitting unprivileged user namespaces with TIPC modules loadable

Discovery Timeline

  • 2026-07-27 - CVE-2026-64543 published to the National Vulnerability Database (NVD)
  • 2026-07-30 - Last updated in NVD database

Technical Details for CVE-2026-64543

Vulnerability Analysis

The TIPC discoverer object is allocated per bearer and referenced by tipc_disc_rcv() on the receive path. When userspace disables a bearer through the TIPCv2 generic netlink family, bearer_disable() calls tipc_disc_delete(), which releases b->disc using kfree(). Concurrent RX softirq processing under rcu_read_lock() continues to dereference the same pointer via the call chain tipc_udp_recv -> tipc_rcv -> tipc_disc_rcv.

Kernel Address Sanitizer (KASAN) reports the condition as slab-use-after-free at net/tipc/discover.c:149. The freed 8-byte read occurs from an IRQ context while the freeing task is executing tipc_nl_bearer_disable(). An attacker who wins the race can reclaim the freed slab object and coerce the kernel into dereferencing attacker-controlled data.

Root Cause

The UDP bearer teardown path violates RCU semantics. Although the bearer itself is released with kfree_rcu(), the discoverer sub-object is freed synchronously without a matching grace period. Readers holding rcu_read_lock() therefore observe a dangling pointer.

Attack Vector

The TIPCv2 genl family is netnsok and its bearer commands lack GENL_ADMIN_PERM, so a process inside an unprivileged user namespace can create and disable a UDP bearer while flooding TIPC discovery traffic to race the free. Successful exploitation yields kernel memory corruption with the potential for local privilege escalation.

No public proof-of-concept code is available beyond the KASAN report embedded in the upstream commit messages. See the kernel.org stable commits for the authoritative patch narrative.

Detection Methods for CVE-2026-64543

Indicators of Compromise

  • KASAN slab-use-after-free reports referencing tipc_disc_rcv in kernel logs
  • Unexpected kernel oops or general protection faults originating from net/tipc/discover.c
  • Loading of the tipc and tipc_udp modules on systems that do not operationally require them

Detection Strategies

  • Enable KASAN on test and canary hosts to surface the race during fuzzing or regression testing
  • Audit for processes creating user namespaces followed by TIPC bearer netlink operations
  • Monitor auditd for init_module/finit_module events loading tipc or tipc_udp

Monitoring Recommendations

  • Collect kernel ring buffer output (dmesg) centrally and alert on TIPC-tagged crashes
  • Track running kernel versions against the fixed stable commits to identify unpatched hosts
  • Alert on non-root invocations of unshare(CLONE_NEWUSER) paired with AF_TIPC socket activity

How to Mitigate CVE-2026-64543

Immediate Actions Required

  • Apply the upstream Linux kernel patch series referenced by commits a0c5fdeb5fa2, b65289e1c3f3, ec7d54d8cc17, 5e215bf1c47f, and 1579342d7113
  • Blacklist the tipc and tipc_udp modules on systems that do not require inter-process cluster messaging
  • Disable unprivileged user namespaces where operationally feasible via kernel.unprivileged_userns_clone=0

Patch Information

The fix converts the discoverer release path to RCU. A new rcu_head is added to struct tipc_discoverer, and the discoverer plus its socket buffer are freed from an RCU callback (tipc_disc_free_rcu) using call_rcu(). An rcu_barrier() is added to tipc_exit() after bearer subsystem teardown so pending callbacks complete before the TIPC module text is unloaded. Patches are available from the kernel.org stable tree.

Workarounds

  • Prevent tipc module autoload by adding install tipc /bin/true to /etc/modprobe.d/
  • Restrict TIPC netlink access with seccomp or Linux Security Modules on multi-tenant hosts
  • Set kernel.unprivileged_userns_clone=0 to remove the unprivileged reachability path
bash
# Configuration example: block TIPC modules and unprivileged user namespaces
echo 'install tipc /bin/true' | sudo tee /etc/modprobe.d/blacklist-tipc.conf
echo 'install tipc_udp /bin/true' | sudo tee -a /etc/modprobe.d/blacklist-tipc.conf
echo 'kernel.unprivileged_userns_clone=0' | sudo tee /etc/sysctl.d/99-userns.conf
sudo sysctl --system

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.