<?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://vulnerability.circl.lu</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, 29 Sep 2026 05:26:11 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98122 — vxlan: mdb: Fix use-after-free in vxlan_mdb_remote_src_del()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-98122</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;vxlan: mdb: Fix use-after-free in vxlan_mdb_remote_src_del()&lt;/p&gt;
&lt;p&gt;vxlan_mdb_is_valid_source(), which validates MDBE_ATTR_SOURCE and every
MDBE_ATTR_SRC_LIST member, accepts the all-zeros address.&lt;/p&gt;
&lt;p&gt;A source list is only accepted on a (*, G) entry, whose source is the
all-zeros address, and for each member of the list an (S, G) entry is
derived from it by substituting the source. Entries are keyed by a plain
memcmp() of struct vxlan_mdb_entry_key, so if MDBE_ATTR_SOURCE is present
and holds the all-zeros address and the source list holds it as well, the
derived (S, G) key is byte-identical to the (*, G) key and resolves to the
same entry. Omitting MDBE_ATTR_SOURCE is not equivalent, as the key is
then left with a zero address family.&lt;/p&gt;
&lt;p&gt;vxlan_mdb_remote_src_del() removes the forwarding entry of a source before
freeing the source entry:&lt;/p&gt;
&lt;p&gt;vxlan_mdb_remote_src_fwd_del(vxlan, group, remote, &amp;amp;ent-&amp;gt;addr);
	vxlan_mdb_remote_src_entry_del(ent);&lt;/p&gt;
&lt;p&gt;With the keys aliased, the first call deletes the remote of the entry that
owns &amp;#39;ent&amp;#39; instead of a separate (S, G) entry, and frees &amp;#39;ent&amp;#39;. The second
call then runs on the freed entry, and its hlist_del() reads -&amp;gt;pprev and
-&amp;gt;next out of it and writes through them.&lt;/p&gt;
&lt;p&gt;Adding the (*, G) entry with NLM_F_REPLACE and no source list marks the
all-zeros source for deletion and reaches this from the sweep at the end
of vxlan_mdb_remote_srcs_replace().&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in…&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;vxlan: mdb: Fix use-after-free in vxlan_mdb_remote_src_del()&lt;/p&gt;
&lt;p&gt;vxlan_mdb_is_valid_source(), which validates MDBE_ATTR_SOURCE and every
MDBE_ATTR_SRC_LIST member, accepts the all-zeros address.&lt;/p&gt;
&lt;p&gt;A source list is only accepted on a (*, G) entry, whose source is the
all-zeros address, and for each member of the list an (S, G) entry is
derived from it by substituting the source. Entries are keyed by a plain
memcmp() of struct vxlan_mdb_entry_key, so if MDBE_ATTR_SOURCE is present
and holds the all-zeros address and the source list holds it as well, the
derived (S, G) key is byte-identical to the (*, G) key and resolves to the
same entry. Omitting MDBE_ATTR_SOURCE is not equivalent, as the key is
then left with a zero address family.&lt;/p&gt;
&lt;p&gt;vxlan_mdb_remote_src_del() removes the forwarding entry of a source before
freeing the source entry:&lt;/p&gt;
&lt;p&gt;vxlan_mdb_remote_src_fwd_del(vxlan, group, remote, &amp;amp;ent-&amp;gt;addr);
	vxlan_mdb_remote_src_entry_del(ent);&lt;/p&gt;
&lt;p&gt;With the keys aliased, the first call deletes the remote of the entry that
owns &amp;#39;ent&amp;#39; instead of a separate (S, G) entry, and frees &amp;#39;ent&amp;#39;. The second
call then runs on the freed entry, and its hlist_del() reads -&amp;gt;pprev and
-&amp;gt;next out of it and writes through them.&lt;/p&gt;
&lt;p&gt;Adding the (*, G) entry with NLM_F_REPLACE and no source list marks the
all-zeros source for deletion and reaches this from the sweep at the end
of vxlan_mdb_remote_srcs_replace().&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-98122</guid>
    </item>
  </channel>
</rss>
