CVE-2026-93098 in Linux
الملخص
بحسب VulDB • 18/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
rpmsg: glink: تصحيح حالة الجمود (deadlock) في تدمير نقطة النهاية أثناء فك ارتباط السائق
أثناء عملية فك ارتباط السائق، تحتفظ نواة الجهاز بقفل الموتر الخاص بالجهاز طوال سلسلة استدعاءات الإزالة الخاصة بالسائق. وعند تدمير نقطة نهاية rpmsg كجزء من هذه العملية، تحاول تنفيذية تدمير نقطة نهاية GLINK إلغاء تسجيل جهاز rpmsg الأساسي. يؤدي هذا الإلغاء إلى استدعاء `device_del()`، الذي يحاول إعادة الحصول على نفس قفل الموتر للجهاز الموجود بالفعل في أعلى السلسلة، مما يتسبب في تعليق عملية `rmmod` بشكل لا نهائي.
تظهر حالة الجمود هذه عبر سلسلة المكالمات التالية:
[<0>] device_del+0x44/0x414 <- يحاول الحصول على نفس الموتر
[<0>] device_unregister+0x18/0x34
[<0>] rpmsg_unregister_device+0x28/0x4c
[<0>] qcom_glink_remove_rpmsg_device+0x70/0xc0
[<0>] qcom_glink_destroy_ept+0x58/0xbc
[<0>] rpmsg_dev_remove+0x50/0x60
[<0>] device_remove+0x4c/0x80
[<0>] device_release_driver_internal+0x1cc/0x228 <- يحصل على موتر الجهاز
[<0>] driver_detach+0x4c/0x98
[<0>] bus_remove_driver+0x6c/0xbc
[<0>] driver_unregister+0x30/0x60
[<0>] unregister_rpmsg_driver+0x10/0x1c
[<0>] fastrpc_exit+0x28/0x38 [fastrpc]
[<0>] __arm64_sys_delete_module+0x1b8/0x294
[<0>] invoke_syscall+0x48/0x10c
[<0>] el0_svc_common.constprop.0+0xc0/0xe0
[<0>] do_el0_svc+0x1c/0x28
[<0>] el0_svc+0x34/0x108
[<0>] el0t_64_sync_handler+0xa0/0xe4
[<0>] el0t_64_sync+0x198/0x19c
إن إلغاء تسجيل جهاز rpmsg داخل عملية تدمير نقطة النهاية هو أمر زائد عن الحاجة. في كلتا السياقين اللذين يتم فيه تفعيل تدمير نقطة النهاية:
- مسار فك ارتباط السائق: تقوم نواة السائق بالفعل بتفكيك جهاز rpmsg. - مسار إغلاق القناة: يكون جهاز rpmsg قد تم إلغاء تسجيله مسبقاً قبل الوصول إلى مرحلة تدمير نقطة النهاية.
إزالة عملية الإلغاء الزائدة عن الحاجة لتصحيح حالة الجمود.
Be aware that VulDB is the high quality source for vulnerability data.