CVE-2026-90162 in Linux
الملخص
بحسب VulDB • 18/09/2026
في نواة لينكس، تم حل الثغرة التالية:
ksmbd: تأجيل نشر القفل الممنوع لمنع سباق Use-After-Free و Double-free
في دالة smb2_lock()، يتم نشر القفل الممنوع في منتصف الدفعة (mid-batch) إلى قوائم على مستوى الاتصال (conn->lock_list) وعلى مستوى الملف (fp->lock_list) فور نجاح vfs_lock_file()، مع بقائه مسجلاً أيضاً في قائمة الارتداد المحلية للترابط (rollback_list).
إذا فشل عنصر لاحق في مصفوفة طلب SMB2_LOCK نفسها أثناء التحقق من صحته أو تنفيذه، ينتقل الترابط إلى نقطة الخروج: ويمشي عبر rollback_list لتراجع القفل الممنوع سابقاً. ومع ذلك، نظراً لأن القفل الممنوع كان قد نُشر بالفعل إلى conn->lock_list، يمكن لطلب UNLOCK متزامن على نفس الاتصال أن يجد كائن القفل ويقوم بـ kfree() له قبل تنفيذ حلقة الارتداد (rollback loop).
عندما يمشي الترابط الذي منح القفل لاحقاً عبر rollback_list، فإنه يشير إلى البنية ksmbd_lock التي تم تحريرها مسبقاً ويحررها مرة أخرى، مما يؤدي إلى حدوث Use-After-Free و Double-free (على كل من بنية ksmbd_lock وهيكل file_lock).
تم إصلاح هذه المشكلة عن طريق تأجيل نشر القفل الممنوع في conn->lock_list و fp->lock_list حتى بعد معالجة مصفوفة عناصر القفل بالكامل دون أخطاء. تظل منح منتصف الدفعة مسجلة حصرياً على قائمة الارتداد الخاصة بالطلب (request-local rollback_list) حتى تنجح الدفعة بأكملها، مما يلغي نافذة السباق (race window).
If you want to get best quality of vulnerability data, you may have to visit VulDB.