{"id":29276,"date":"2026-09-25T20:32:18","date_gmt":"2026-09-25T12:32:18","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98122"},"modified":"2026-09-25T20:32:18","modified_gmt":"2026-09-25T12:32:18","slug":"cve-2026-98122","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98122","title":{"rendered":"CVE-2026-98122 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: mdb: Fix use-a"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vxlan: mdb: Fix use-after-free in vxlan_mdb_remote_src_del()<\/p>\n<p>vxlan_mdb_is_valid_source(), which validates MDBE_ATTR_SOURCE and every<br \/>\nMDBE_ATTR_SRC_LIST member, accepts the all-zeros address.<\/p>\n<p>A source list is only accepted on a (*, G) entry, whose source is the<br \/>\nall-zeros address, and for each member of the list an (S, G) entry is<br \/>\nderived from it by substituting the source. Entries are keyed by a plain<br \/>\nmemcmp() of struct vxlan_mdb_entry_key, so if MDBE_ATTR_SOURCE is present<br \/>\nand holds the all-zeros address and the source list holds it as well, the<br \/>\nderived (S, G) key is byte-identical to the (*, G) key and resolves to the<br \/>\nsame entry. Omitting MDBE_ATTR_SOURCE is not equivalent, as the key is<br \/>\nthen left with a zero address family.<\/p>\n<p>vxlan_mdb_remote_src_del() removes the forwarding entry of a source before<br \/>\nfreeing the source entry:<\/p>\n<p>\tvxlan_mdb_remote_src_fwd_del(vxlan, group, remote, &amp;ent-&gt;addr);<br \/>\n\tvxlan_mdb_remote_src_entry_del(ent);<\/p>\n<p>With the keys aliased, the first call deletes the remote of the entry that<br \/>\nowns &#8216;ent&#8217; instead of a separate (S, G) entry, and frees &#8216;ent&#8217;. The second<br \/>\ncall then runs on the freed entry, and its hlist_del() reads -&gt;pprev and<br \/>\n-&gt;next out of it and writes through them.<\/p>\n<p>Adding the (*, G) entry with NLM_F_REPLACE and no source list marks the<br \/>\nall-zeros source for deletion and reaches this from the sweep at the end<br \/>\nof vxlan_mdb_remote_srcs_replace().<\/p>\n<p>  BUG: KASAN: slab-use-after-free in __vxlan_mdb_add+0x1cd\/0xd70<br \/>\n  Read of size 8 at addr ffff888102852500 by task poc\/84<br \/>\n   __vxlan_mdb_add+0x1cd\/0xd70<br \/>\n   vxlan_mdb_add+0xc0\/0x140<br \/>\n   rtnl_mdb_add+0x157\/0x2a0<br \/>\n   rtnetlink_rcv_msg+0x207\/0x5a0<br \/>\n  Allocated by task 84:<br \/>\n   __kmalloc_cache_noprof+0x153\/0x360<br \/>\n   vxlan_mdb_remote_srcs_add+0x2eb\/0x440<br \/>\n   __vxlan_mdb_add+0x803\/0xd70<br \/>\n  Freed by task 84:<br \/>\n   kfree+0x14c\/0x3b0<br \/>\n   vxlan_mdb_remote_del+0x129\/0x1a0<br \/>\n   __vxlan_mdb_del+0x4f\/0xe0<br \/>\n   vxlan_mdb_remote_src_fwd_del.isra.0+0x162\/0x1b0<br \/>\n   __vxlan_mdb_add+0x1c5\/0xd70<\/p>\n<p>The MDB operations are netns-scoped, so an unprivileged user can perform<br \/>\nthem in a new user and network namespace.<\/p>\n<p>Reject the all-zeros address in vxlan_mdb_is_valid_source(), which covers<br \/>\nboth call sites. A (*, G) entry is expressed by omitting the source, so<br \/>\nnothing legitimate is refused.<\/p>\n<p>Discovered by XBOW, triaged by Baul Lee <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vxlan: mdb: Fix use-after-free in vxlan_mdb_remote_src_del()<\/p>\n<p>vxlan_mdb_is_valid_source(), which validates MDBE_ATTR_SOURCE and eve<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29276","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}