CVE-2026-90284 in Linux
الملخص
بحسب VulDB • 19/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
firmware_loader: عدم إدراج طلبات التراجع (fallback) عبر sysfs المكتملة في قائمة الانتظار
تقوم الدالة `fw_load_sysfs_fallback()` باستدعاء `device_add()` قبل إضافة كائن `fw_priv` إلى القائمة `pending_fw_head`. ونظراً لأن `device_add()` ينشر واجهة التحميل الاحتياطي (fallback)، فإن مساعد المستخدم (userspace helper) الذي يكتشف الجهاز عن طريق مسح sysfs يمكنه كتابة القيمة 0 في سمة التحميل وإكمال الطلب قبل إدراجه كقيد الانتظار.
في هذا التداخل الزمني، تستدعي الدالة `firmware_loading_store()` دالة `fw_state_done()` بينما لا يزال مؤشر القائمة `pending_list` يشير إلى نفسه، مما يمنعها من إزالة عنصر من قائمة `pending_fw_head`. يؤدي ذلك بعدئذٍ إلى إدراج غير مشروط (`list_add()`) لكائن `fw_priv` مكتمل بالفعل في قائمة الانتظار. بمجرد تحرير الطلب، قد تحتفظ قائمة `pending_fw_head` بمؤشر إلى ذاكرة تم تحريرها (freed memory)، وقد يتسبب طلب التراجع التالي في حدوث خطأ (fault) أثناء التحقق من صحة القائمة.
تحتاج فقط طلبات التراجع قيد التنفيذ حالياً (in-flight) إلى معالجة لإلغاء عمليات التعليق أو إعادة التشغيل. إذا كان الطلب قد اكتمل بالفعل (`DONE`) بعد استدعاء `device_add()`، فارجع بنجاح من مسار التراجع دون إرسال حدث uevent آخر، أو الانتظار مجدداً، أو إدراجه كقيد الانتظار. يحافظ هذا الإجراء على الثابت المنطقي (invariant) الذي ينص على أن قائمة `pending_fw_head` تحتوي فقط على طلبات تراجع نشطة.
If you want to get best quality of vulnerability data, you may have to visit VulDB.