{"id":29015,"date":"2026-09-25T20:31:41","date_gmt":"2026-09-25T12:31:41","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97583"},"modified":"2026-09-25T20:31:41","modified_gmt":"2026-09-25T12:31:41","slug":"cve-2026-97583","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97583","title":{"rendered":"CVE-2026-97583 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nafs: Clear stale peer"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>afs: Clear stale peer app data after address list changes<\/p>\n<p>afs_fs_probe_fileserver() fetches the current endpoint state under<br \/>\nserver-&gt;fs_lock, but leaves old_alist as NULL.  Consequently,<br \/>\nafs_set_peer_appdata() treats every address list replacement as initial<br \/>\nsetup and only binds the new peers; it never unbinds peers removed from<br \/>\nthe old list.<\/p>\n<p>An address refresh can therefore proceed as follows.  CPU 0 replaces<br \/>\nserver S&#8217;s list and drops Pold without clearing Pold-&gt;app_data.  The<br \/>\nserver destroyer then clears only S&#8217;s current peers and lets S reach its<br \/>\nRCU callback.  After the callback frees S, CPU 1 handles a callback<br \/>\nthrough an RxRPC connection that still pins Pold, reads Pold-&gt;app_data,<br \/>\nand calls afs_use_server() on the freed object.<\/p>\n<p>KASAN reported:<\/p>\n<p>  BUG: KASAN: slab-use-after-free in afs_find_server+0x3c\/0xa0<br \/>\n  Read of size 4 at addr ffff8881013e1af0 by task krxrpcio\/7001\/74<br \/>\n  Call Trace:<br \/>\n   afs_find_server+0x3c\/0xa0<br \/>\n   afs_rx_new_call+0x15c\/0x390<br \/>\n   rxrpc_new_incoming_call+0x97c\/0x1730<br \/>\n   rxrpc_input_packet.constprop.0+0xd03\/0xec0<br \/>\n   rxrpc_io_thread+0x967\/0x1640<br \/>\n  Allocated by task 93:<br \/>\n   afs_lookup_server+0x1a7\/0x14c0<br \/>\n   afs_alloc_server_list+0x43f\/0xb60<br \/>\n   afs_create_volume+0x923\/0x1490<br \/>\n   afs_get_tree+0x1c6\/0x10a0<br \/>\n  Freed by task 0:<br \/>\n   kfree+0x131\/0x3c0<br \/>\n   rcu_core+0x50a\/0x1850<br \/>\n  Last potentially related work creation:<br \/>\n   __call_rcu_common.constprop.0+0x71\/0xa10<br \/>\n   afs_put_server+0x213\/0x2b0<\/p>\n<p>Preserve old-&gt;addresses for the peer app-data update so that removed<br \/>\npeers are cleared before the endpoint state is replaced.  Also advance<br \/>\nboth cursors when the old and new lists share a peer; activating the<br \/>\nold\/new comparison without this would otherwise loop forever on the<br \/>\nshared entry.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>afs: Clear stale peer app data after address list changes<\/p>\n<p>afs_fs_probe_fileserver() fetches the current endpoint state under<br \/>\nserve<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29015","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29015","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=29015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}