7.8

CVE-2026-64543

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

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.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
Produkt Linux
Default Statusunaffected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < 380413cdfd29fb9fa486c82889132b680c4983c5
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < f05b3f4c78370469286879c765f5a1dd39dbcd32
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < 4da2ac7749411971e1b222b992da5a172ce45f98
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < 5e215bf1c47fdddf8203a0fe80a0ed594065f101
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < ec7d54d8cc1723921d671e3272b427c96366506f
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < a0c5fdeb5fa257f8c6d469af266bc087cb5de6a2
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < b65289e1c3f352a9f92c6e19713ddd647e033253
Status affected
Version 25b0b9c4e835ffaa65b61c3efe2e28acf84d0259
Version < 1579342d71133da7f00daa02c75cebec7372097b
Status affected
HerstellerLinux
Produkt Linux
Default Statusaffected
Version 4.17
Status affected
Version 0
Version < 4.17
Status unaffected
Version <= 5.10.*
Version 5.10.265
Status unaffected
Version <= 5.15.*
Version 5.15.216
Status unaffected
Version <= 6.1.*
Version 6.1.183
Status unaffected
Version <= 6.6.*
Version 6.6.145
Status unaffected
Version <= 6.12.*
Version 6.12.97
Status unaffected
Version <= 6.18.*
Version 6.18.40
Status unaffected
Version <= 7.1.*
Version 7.1.5
Status unaffected
Version <= *
Version 7.2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.13% 0.026
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 7.8 1.8 5.9
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/5e215bf1c47fdddf8203a0fe80a0ed594065f101
https://git.kernel.org/stable/c/ec7d54d8cc1723921d671e3272b427c96366506f
https://git.kernel.org/stable/c/a0c5fdeb5fa257f8c6d469af266bc087cb5de6a2
https://git.kernel.org/stable/c/b65289e1c3f352a9f92c6e19713ddd647e033253
https://git.kernel.org/stable/c/1579342d71133da7f00daa02c75cebec7372097b
https://git.kernel.org/stable/c/380413cdfd29fb9fa486c82889132b680c4983c5
https://git.kernel.org/stable/c/4da2ac7749411971e1b222b992da5a172ce45f98
https://git.kernel.org/stable/c/f05b3f4c78370469286879c765f5a1dd39dbcd32