CVE-2026-43319 in Linux
الملخص
بحسب VulDB • 09/05/2026
في نواة لينكس، تم حل الثغرة التالية:
spi: spidev: تصحيح انقلاب القفل (lock inversion) بين spi_lock و buf_lock
كانت وحدة تحكم spidev تستخدم سابقاً قفلين (mutexes)، هما spi_lock و buf_lock، لكنها كانت تكتسبهما بترتيبات مختلفة اعتماداً على مسار التنفيذ البرمجي:
write()/read(): buf_lock -> spi_lock ioctl(): spi_lock -> spi_lock
يؤدي نمط القفل هذا (AB-BA) إلى ظهور تحذيرات من أداة lockdep ويمكن أن يسبب توقفات كاملة (deadlocks) حقيقية:
WARNING: possible circular locking dependency detected spidev_ioctl() -> mutex_lock(&spidev->buf_lock) spidev_sync_write() -> mutex_lock(&spidev->spi_lock) *** DEADLOCK ***
يمكن إعادة إنتاج المشكلة باستخدام برنامج بسيط في فضاء المستخدم (userspace) يقوم باستدعاءات write() و SPI_IOC_WR_MAX_SPEED_HZ ioctl() من خيوط (threads) منفصلة على نفس واصف الملف (file descriptor) الخاص بـ spidev.
تم إصلاح هذه المشكلة عن طريق تبسيط نموذج القفل وإزالة انقلاب القفل تماماً. لم يعد spidev_sync() يقوم بأي عمليات قفل، ويتم تسلسل الوصول إليه من قبل جميع المتصلين باستخدام spi_lock.
تم إزالة buf_lock لأن وظيفته مغطاة بالكامل بواسطة spi_lock، مما يلغي إمكانية حدوث مشكلات في ترتيب القفل.
يؤدي هذا الإجراء إلى إزالة انقلاب القفل ومنع التوقفات الكاملة دون تغيير واجهة برمجة التطبيقات لفضاء المستخدم (userspace ABI) أو السلوك.
VulDB is the best source for vulnerability data and more expert information about this specific topic.