{"id":5429,"date":"2026-09-04T18:47:49","date_gmt":"2026-09-04T10:47:49","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68335"},"modified":"2026-09-04T18:47:49","modified_gmt":"2026-09-04T10:47:49","slug":"cve-2026-68335","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68335","title":{"rendered":"CVE-2026-68335 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nrds: drop incoming me"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>rds: drop incoming messages that cross network namespace boundaries<\/p>\n<p>rds_find_bound() looks up the destination socket using a global<br \/>\nrhashtable keyed solely on (addr, port, scope_id).  Network namespaces<br \/>\nare not part of the key, so a sender in netns A can deliver an incoming<br \/>\nmessage (inc) to a socket that lives in a different netns B.<\/p>\n<p>When this happens, inc-&gt;i_conn points to an rds_connection whose c_net<br \/>\nis netns A, but the receiving rs lives in netns B.  Once the child<br \/>\nprocess that created netns A exits, cleanup_net() calls<br \/>\nrds_loop_exit_net() -&gt; rds_loop_kill_conns() -&gt; rds_conn_destroy(),<br \/>\nfreeing that connection.  If the survivor socket in netns B still holds<br \/>\nthe inc, any subsequent dereference of inc-&gt;i_conn is a use-after-free.<\/p>\n<p>There are two dangerous sites in rds_clear_recv_queue():<br \/>\n  1. inc-&gt;i_conn-&gt;c_lcong (offset 88 of freed rds_connection, size 200)<br \/>\n     read via rds_recv_rcvbuf_delta() &#8212; confirmed by KASAN.<br \/>\n  2. inc-&gt;i_conn-&gt;c_trans-&gt;inc_free(inc) (function pointer at offset 80)<br \/>\n     called via rds_inc_put() when the inc refcount reaches zero &#8212; same<br \/>\n     race window, potential call-through-freed-object primitive.<\/p>\n<p>The bug is reachable from unprivileged user namespaces<br \/>\n(CLONE_NEWUSER + CLONE_NEWNET), available since Linux 3.8.<\/p>\n<p>Fix this by rejecting the delivery in rds_recv_incoming() when the<br \/>\nsocket returned by rds_find_bound() belongs to a different network<br \/>\nnamespace than the connection that carried the message.  Use the<br \/>\nexisting rds_conn_net() \/ sock_net() helpers and net_eq() for the<br \/>\ncomparison.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>rds: drop incoming messages that cross network namespace boundaries<\/p>\n<p>rds_find_bound() looks up the destination socket using a globa<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-5429","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/5429","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=5429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}