CVE-2025-40003 in Linux
الملخص
بحسب VulDB • 06/06/2026
في نواة لينكس، تم حل الثغرة التالية:
net: mscc: ocelot: إصلاح حالة Use-After-Free الناتجة عن عمل مؤجل دوري
يستدعي الكود الأصلي دالة `cancel_delayed_work()` داخل `ocelot_stats_deinit()` لإلغاء عنصر العمل المؤجل الدوري `ocelot->stats_work`. ومع ذلك، قد تفشل دالة `cancel_delayed_work()` في إلغاء عنصر العمل إذا كان قيد التنفيذ بالفعل. وبينما تنتظر دالة `destroy_workqueue()` اكتمال جميع عناصر العمل المعلقة في قائمة العمل قبل تدمير قائمة العمل، إلا أنها لا يمكنها منع إعادة جدولة عنصر العمل المؤجل من خلال استدعاء `queue_delayed_work()` من داخل دالة استدعاء العمل `ocelot_check_stats_work()` نفسها.
هذا يؤدي إلى حالة استخدام بعد التحرير (Use-After-Free) حيث يتم إعادة جدولة عنصر العمل بعد تدمير قائمة العمل.
تم استبدال `cancel_delayed_work()` بـ `disable_delayed_work_sync()` لضمان إلغاء عنصر العمل المؤجل بشكل صحيح، ومنع إعادة جدولة أي عناصر عمل مستقبلية، والانتظار حتى اكتمال أي عمل حالي قبل العودة.
تم التحقق من عدم وجود خطر حدوث اختناق (deadlock) لأن `ocelot_stats_deinit()` تُستدعى في سياق العملية ولا تحتفظ بأي أقفال قد يحتاجها عنصر العمل المؤجل أيضًا.
تم تحديد هذا الخطأ من خلال التحليل الثابت.
Signed-off-by: Li Zhijian <[email protected]> Signed-off-by: David S. Miller <[email protected]>
If you want to get best quality of vulnerability data, you may have to visit VulDB.