{"id":26059,"date":"2026-09-18T04:32:17","date_gmt":"2026-09-17T20:32:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93202"},"modified":"2026-09-18T04:32:17","modified_gmt":"2026-09-17T20:32:17","slug":"cve-2026-93202","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93202","title":{"rendered":"CVE-2026-93202 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ni3c: master: Fix recu"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>i3c: master: Fix recursive locking during device registration<\/p>\n<p>i3c_master_register_new_i3c_devs() registers newly discovered devices<br \/>\nwhile holding i3c_bus_normaluse_lock(), a down_read().  device_register()<br \/>\ncan immediately probe the device, and probe callbacks typically invoke<br \/>\nI3C helpers that take i3c_bus_normaluse_lock() again, leading to a<br \/>\nrecursive acquisition of the same rwsem.  rwsems do not support recursive<br \/>\nread locking and can deadlock when a writer is waiting.  See the<br \/>\n&#8220;Recursive read locks&#8221; section of Documentation\/locking\/lockdep-design.rst.<\/p>\n<p>For example, with Intel LPSS I3C, LOCKDEP generates a WARNING like:<br \/>\n  # echo intel-lpss-i3c.0 &gt; \/sys\/bus\/platform\/drivers\/mipi-i3c-hci\/unbind<br \/>\n  # echo intel-lpss-i3c.0 &gt; \/sys\/bus\/platform\/drivers\/mipi-i3c-hci\/bind<br \/>\n  WARNING: possible recursive locking detected<br \/>\n  kworker\/5:1\/94 is trying to acquire lock:<br \/>\n  ffff88811c810d78 (&amp;i3cbus-&gt;lock){++++}-{4:4}, at: i3c_device_match_id+0x45\/0x370<br \/>\n  but task is already holding lock:<br \/>\n  ffff88811c810d78 (&amp;i3cbus-&gt;lock){++++}-{4:4}, at: i3c_master_reg_work_fn+0x21\/0x5f0<\/p>\n<p>Fix this by separating device creation from device registration.<br \/>\nPopulate desc-&gt;dev under the maintenance lock, collect the devices that<br \/>\nstill need registration into a local list, then release the lock before<br \/>\ncalling device_register().  Finally retake the lock and clean up any<br \/>\ndevices that failed to register.<\/p>\n<p>Use the maintenance lock rather than the normal-use lock while adding<br \/>\ndevice objects.  A write-side maintenance lock prevents readers from<br \/>\nobserving a partially initialized desc-&gt;dev during initial device<br \/>\npopulation, or desc-&gt;dev disappearing if registration fails.<\/p>\n<p>The local list requires a list node, so add a list node member to struct<br \/>\ni3c_device.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>i3c: master: Fix recursive locking during device registration<\/p>\n<p>i3c_master_register_new_i3c_devs() registers newly discovered device<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-26059","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/26059","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=26059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=26059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=26059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}