{"id":15101,"date":"2026-09-04T19:02:25","date_gmt":"2026-09-04T11:02:25","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64141"},"modified":"2026-09-04T19:02:25","modified_gmt":"2026-09-04T11:02:25","slug":"cve-2026-64141","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64141","title":{"rendered":"CVE-2026-64141 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: fix null point"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ksmbd: fix null pointer dereference in compare_guid_key()<\/p>\n<p>session_fd_check() walks the per-inode m_op_list during durable-handle<br \/>\nsession teardown and sets op-&gt;conn = NULL for every opinfo whose conn<br \/>\nmatched the closing session&#8217;s connection. The matching opinfo, however,<br \/>\nstays linked in its per-ClientGuid lease_table_list entry&#8217;s lb-&gt;lease_list<br \/>\nbecause destroy_lease_table() only runs on full TCP-connection teardown,<br \/>\nnot on SESSION_LOGOFF.<\/p>\n<p>If the same TCP connection then negotiates a fresh session with the<br \/>\nsame ClientGuid (ClientGuid is bound to NEGOTIATE, not the session, and<br \/>\nis unchanged across LOGOFF + SETUP) and issues a SMB2 CREATE with a<br \/>\nlease context on a different inode, find_same_lease_key() walks<br \/>\nlb-&gt;lease_list, reaches the stale opinfo, and calls compare_guid_key(),<br \/>\nwhich unconditionally dereferences opinfo-&gt;conn-&gt;ClientGUID. The conn<br \/>\npointer is NULL and the kernel panics.<\/p>\n<p>Reproducer requires only a successful SMB2 SESSION_SETUP and a share<br \/>\nconfigured with &#8216;durable handles = yes&#8217;. KASAN report on mainline<br \/>\n70390501d194:<\/p>\n<p>  general protection fault, probably for non-canonical address<br \/>\n  0xdffffc0000000069: 0000 [#1] SMP KASAN PTI<br \/>\n  KASAN: null-ptr-deref in range [0x0000000000000348-0x000000000000034f]<br \/>\n  Workqueue: ksmbd-io handle_ksmbd_work<br \/>\n  RIP: 0010:bcmp+0x5b\/0x230<br \/>\n  Call Trace:<br \/>\n   compare_guid_key+0x4b\/0xd0<br \/>\n   find_same_lease_key+0x324\/0x690<br \/>\n   smb2_open+0x6aea\/0x8e60<br \/>\n   handle_ksmbd_work+0x796\/0xee0<br \/>\n   &#8230;<\/p>\n<p>Faulting address 0x348 is the offset of ClientGUID within struct<br \/>\nksmbd_conn, confirming opinfo-&gt;conn was NULL.<\/p>\n<p>Read opinfo-&gt;conn once and bail out if it has been cleared by a<br \/>\nconcurrent session_fd_check(). A half-detached opinfo cannot be the<br \/>\nowner of an active lease, so returning 0 is the correct match result.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ksmbd: fix null pointer dereference in compare_guid_key()<\/p>\n<p>session_fd_check() walks the per-inode m_op_list during durable-handle<br \/>\ns<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-15101","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/15101","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=15101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}