<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 23:46:00 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64543 — tipc: fix use-after-free of the discoverer in tipc_disc_rcv()</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-64543</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tipc: fix use-after-free of the discoverer in tipc_disc_rcv()&lt;/p&gt;
&lt;p&gt;bearer_disable() frees b-&amp;gt;disc with tipc_disc_delete()&amp;#39;s plain kfree(),
but tipc_disc_rcv() still dereferences b-&amp;gt;disc in RX softirq under
rcu_read_lock() (tipc_udp_recv -&amp;gt; tipc_rcv -&amp;gt; tipc_disc_rcv).&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;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
 &amp;lt;IRQ&amp;gt;
  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)
 &amp;lt;/IRQ&amp;gt;
 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)&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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 modu…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tipc: fix use-after-free of the discoverer in tipc_disc_rcv()&lt;/p&gt;
&lt;p&gt;bearer_disable() frees b-&amp;gt;disc with tipc_disc_delete()&amp;#39;s plain kfree(),
but tipc_disc_rcv() still dereferences b-&amp;gt;disc in RX softirq under
rcu_read_lock() (tipc_udp_recv -&amp;gt; tipc_rcv -&amp;gt; tipc_disc_rcv).&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;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
 &amp;lt;IRQ&amp;gt;
  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)
 &amp;lt;/IRQ&amp;gt;
 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)&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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 modu…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-64543</guid>
    </item>
  </channel>
</rss>
