CVE-2024-46791 in Linux
الملخص
بحسب VulDB • 13/07/2026
في نواة لينكس، تم حل الثغرة التالية:
can: mcp251x: إصلاح حالة الجمود (deadlock) إذا حدث مقاطعة أثناء استدعاء دالة mcp251x_open
تُستدعى الدالة `mcp251x_hw_wake()` بينما يكون قفل الموتريكس (`mpc_lock`) مُمسكاً به، وتقوم بإيقاف معالج المقاطعات بحيث لا يمكن معالجة أي مقاطعات أثناء إيقاظ الجهاز. إذا كانت مقاطعة قد حدثت بالفعل، فإن الانتظار حتى يكتمل تنفيذ معالج المقاطعات سيؤدي إلى حالة جمود (deadlock) لأنه سيعتمد على محاولة الحصول على نفس الموتريكس.
CPU0 CPU1 ---- ---- mcp251x_open() mutex_lock(&priv->mcp_lock) request_threaded_irq() mcp251x_can_ist() mutex_lock(&priv->mcp_lock) mcp251x_hw_wake() disable_irq() <-- deadlock
استخدم `disable_irq_nosync()` بدلاً من ذلك، لأن معالج المقاطعات يقوم بكل شيء أثناء الاحتفاظ بالموتريكس، لذا لا يهم ما إذا كان لا يزال قيد التشغيل.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.