{"id":25955,"date":"2026-09-18T04:32:08","date_gmt":"2026-09-17T20:32:08","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93098"},"modified":"2026-09-18T04:32:08","modified_gmt":"2026-09-17T20:32:08","slug":"cve-2026-93098","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93098","title":{"rendered":"CVE-2026-93098 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nrpmsg: glink: fix dea"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>rpmsg: glink: fix deadlock in endpoint destroy during driver detach<\/p>\n<p>During driver detach, the device core holds the device mutex throughout<br \/>\nthe driver&#8217;s remove callback chain.  When the rpmsg endpoint is<br \/>\ndestroyed as part of that teardown, the GLINK endpoint destroy<br \/>\nimplementation attempts to unregister the underlying rpmsg device.<br \/>\nThat unregistration calls device_del(), which tries to re-acquire the<br \/>\nsame device mutex already held higher up the stack, causing rmmod to<br \/>\nhang indefinitely.<\/p>\n<p>The deadlock manifests with the following call chain:<\/p>\n<p>[] device_del+0x44\/0x414\u2003\u2003&lt;- tries to acquire same mutex<br \/>\n[] device_unregister+0x18\/0x34<br \/>\n[] rpmsg_unregister_device+0x28\/0x4c<br \/>\n[] qcom_glink_remove_rpmsg_device+0x70\/0xc0<br \/>\n[] qcom_glink_destroy_ept+0x58\/0xbc<br \/>\n[] rpmsg_dev_remove+0x50\/0x60<br \/>\n[] device_remove+0x4c\/0x80<br \/>\n[] device_release_driver_internal+0x1cc\/0x228  &lt;- acquires device mutex<br \/>\n[] driver_detach+0x4c\/0x98<br \/>\n[] bus_remove_driver+0x6c\/0xbc<br \/>\n[] driver_unregister+0x30\/0x60<br \/>\n[] unregister_rpmsg_driver+0x10\/0x1c<br \/>\n[] fastrpc_exit+0x28\/0x38 [fastrpc]<br \/>\n[] __arm64_sys_delete_module+0x1b8\/0x294<br \/>\n[] invoke_syscall+0x48\/0x10c<br \/>\n[] el0_svc_common.constprop.0+0xc0\/0xe0<br \/>\n[] do_el0_svc+0x1c\/0x28<br \/>\n[] el0_svc+0x34\/0x108<br \/>\n[] el0t_64_sync_handler+0xa0\/0xe4<br \/>\n[] el0t_64_sync+0x198\/0x19c<\/p>\n<p>The rpmsg device unregistration inside endpoint destroy is redundant.<br \/>\nIn both contexts where endpoint destruction is triggered:<\/p>\n<p>&#8211; Driver detach path: the driver core already tears down the rpmsg<br \/>\n  device.<\/p>\n<p>&#8211; Channel close path: the rpmsg device is already unregistered before<br \/>\n  endpoint destruction is reached.<\/p>\n<p>Remove the redundant unregistration to fix the deadlock.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>rpmsg: glink: fix deadlock in endpoint destroy during driver detach<\/p>\n<p>During driver detach, the device core holds the device mutex t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25955","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25955","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=25955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}