{"id":5425,"date":"2026-09-04T18:47:49","date_gmt":"2026-09-04T10:47:49","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68323"},"modified":"2026-09-04T18:47:49","modified_gmt":"2026-09-04T10:47:49","slug":"cve-2026-68323","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68323","title":{"rendered":"CVE-2026-68323 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: serialize udp b"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>tipc: serialize udp bearer replicast list updates<\/p>\n<p>tipc_udp_rcast_add() and cleanup_bearer() both update ub-&gt;rcast.list with<br \/>\nlist_add_rcu() \/ list_del_rcu(), but nothing serializes them. The add runs<br \/>\nfrom the encap receive softirq (via tipc_udp_rcast_disc()) without<br \/>\nrtnl_lock(), so it can race the cleanup delete and corrupt the list:<\/p>\n<p>  list_del corruption. prev-&gt;next should be ffff8880298d7ab8,<br \/>\n    but was ffff88802449ad38. (prev=ffff888027e3ec98)<br \/>\n  kernel BUG at lib\/list_debug.c:62!<br \/>\n  RIP: __list_del_entry_valid_or_report+0x17a\/0x200<br \/>\n  Workqueue: events cleanup_bearer<br \/>\n  Call Trace:<br \/>\n   cleanup_bearer (net\/tipc\/udp_media.c:811)<br \/>\n   process_one_work (kernel\/workqueue.c:3302)<br \/>\n   worker_thread (kernel\/workqueue.c:3466)<\/p>\n<p>The bearer can be enabled from an unprivileged user namespace, as the<br \/>\nTIPCv2 generic-netlink ops carry no GENL_ADMIN_PERM.<\/p>\n<p>Add a spinlock to struct udp_bearer and take it around the list_add_rcu()<br \/>\nin tipc_udp_rcast_add() and the list_del_rcu() loop in cleanup_bearer() so<br \/>\nthe two writers can no longer corrupt the list.<\/p>\n<p>Reject a duplicate peer under the same lock before allocating, and remove<br \/>\ntipc_udp_is_known_peer(). The old lockless pre-check in<br \/>\ntipc_udp_rcast_disc() was racy: two softirqs discovering the same peer<br \/>\ncould both find it absent and add it twice.<\/p>\n<p>cleanup_bearer() runs from a workqueue after tipc_udp_disable() clears the<br \/>\nbearer&#8217;s up bit, so an encap softirq can still reach tipc_udp_rcast_add()<br \/>\nand add a peer after cleanup_bearer() has already emptied the list, leaking<br \/>\nthat entry when the bearer is freed. Mark the bearer disabled under<br \/>\nrcast_lock once the list is emptied and refuse further additions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>tipc: serialize udp bearer replicast list updates<\/p>\n<p>tipc_udp_rcast_add() and cleanup_bearer() both update ub-&gt;rcast.list with<br \/>\nlist_a<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-5425","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/5425","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=5425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}