CVE-2026-64543

HighCVSS 7.8/10Last modified Nov 13, 2026

Description

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

tipc: fix use-after-free of the discoverer in tipc_disc_rcv()

bearer_disable() frees b->disc with tipc_disc_delete()'s plain kfree(), but tipc_disc_rcv() still dereferences b->disc in RX softirq under rcu_read_lock() (tipc_udp_recv -> tipc_rcv -> tipc_disc_rcv).

L2 bearers are safe thanks to the synchronize_net() in tipc_disable_l2_media(), but the UDP bearer defers that call to the cleanup_bearer() workqueue, so the discoverer is freed with no grace period:

BUG: KASAN: slab-use-after-free in tipc_disc_rcv (net/tipc/discover.c:149) Read of size 8 at addr ffff88802348b728 by task poc_tipc/184 <IRQ> tipc_disc_rcv (net/tipc/discover.c:149) tipc_rcv (net/tipc/node.c:2126) tipc_udp_recv (net/tipc/udp_media.c:391) udp_rcv (net/ipv4/udp.c:2643) ip_local_deliver_finish (net/ipv4/ip_input.c:241) </IRQ> Freed by task 181: kfree (mm/slub.c:6565) bearer_disable (net/tipc/bearer.c:418) tipc_nl_bearer_disable (net/tipc/bearer.c:1001)

The bearer is freed with kfree_rcu(); free the discoverer the same way. Add an rcu_head to struct tipc_discoverer and free it and its skb from an RCU callback.

Because the RCU callback (tipc_disc_free_rcu) lives in module text, a call_rcu() that is still pending when the tipc module is unloaded would invoke a freed function. Add an rcu_barrier() to tipc_exit() after the bearer subsystem has been torn down, so all pending discoverer callbacks have run before the module text goes away.

Reachable from an unprivileged user namespace: the TIPCv2 genl family is netnsok and its bearer commands have no GENL_ADMIN_PERM. Needs CONFIG_TIPC and CONFIG_TIPC_MEDIA_UDP.

Metrics

CVSS 3.1 7.8/10CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Weakness enumeration

Affected software

VendorProductVersions
LinuxLinux>= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < 380413cdfd29fb9fa486c82889132b680c4983c5; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < f05b3f4c78370469286879c765f5a1dd39dbcd32; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < 4da2ac7749411971e1b222b992da5a172ce45f98; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < 5e215bf1c47fdddf8203a0fe80a0ed594065f101; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < ec7d54d8cc1723921d671e3272b427c96366506f; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < a0c5fdeb5fa257f8c6d469af266bc087cb5de6a2; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < b65289e1c3f352a9f92c6e19713ddd647e033253; >= 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259, < 1579342d71133da7f00daa02c75cebec7372097b
LinuxLinux4.17

References

Timeline

Published
Jul 27, 2026
Last modified
Nov 13, 2026
NVD status
Analyzed

Related CVEs from 2026

CVE-2026-64544In the Linux kernel, the following vulnerability has been resolved: crypto: asymmetric_keys - fix OOB read in pefile_digest_pe_contents peCVE-2026-645457.5In the Linux kernel, the following vulnerability has been resolved: net, bpf: check master for NULL in xdp_master_redirect() xdp_master_reCVE-2026-645467.1In the Linux kernel, the following vulnerability has been resolved: drm/edid: fix OOB read in drm_parse_tiled_block() drm_parse_tiled_blocCVE-2026-645478.1In the Linux kernel, the following vulnerability has been resolved: net: usb: net1080: validate packet_len before pad-byte access in rx_fixCVE-2026-645488.4In the Linux kernel, the following vulnerability has been resolved: bpf, sockmap: reject overflowing copy + len in bpf_msg_push_data() WheCVE-2026-64549In the Linux kernel, the following vulnerability has been resolved: Bluetooth: bpa10x: avoid OOB read of revision string in bpa10x_setup() CVE-2026-64558.1The WP Contact Form 7 DB Handler plugin for WordPress is vulnerable to Cross-Site Request Forgery leading to Arbitrary File Deletion via SQLCVE-2026-645507.3In the Linux kernel, the following vulnerability has been resolved: net: qualcomm: rmnet: validate MAP frame length before ingress parsing CVE-2026-645519.1In the Linux kernel, the following vulnerability has been resolved: sctp: validate STALE_COOKIE cause length before reading staleness WhenCVE-2026-645528.4In the Linux kernel, the following vulnerability has been resolved: virtio-net: fix len check in receive_big() receive_big() bounds the deCVE-2026-64553In the Linux kernel, the following vulnerability has been resolved: net: psample: fix info leak in PSAMPLE_ATTR_DATA psample open codes nlCVE-2026-645548.8In the Linux kernel, the following vulnerability has been resolved: netfilter: bridge: fix stale prevhdr pointer in br_ip6_fragment() br_i
CVE-2026-64543: High severity, CVSS 7.8 | Vulnix