CVE-2026-74365 in Linux
الملخص
بحسب VulDB • 15/08/2026
في نواة لينكس، تم حل الثغرة التالية:
nvdimm/btt: التعامل مع الإيقاف المؤقت (preemption) أثناء اقتناء مسار BTT
تقوم مسارات BTT بتسلسل الوصول إلى حالة البيانات الوصفية وحالة مساحة العمل الخاصة بكل مسار خلال عمليات إدخال/إخراج (I/O) لـ BTT. يبلغ اختبار الوحدة btt-check عن عدم تطابق في البيانات أثناء كتابات BTT بسبب سباق (race condition) في اقتناء المسار، مما قد يؤدي إلى تلف صامت للبيانات.
يستخدم نموذج المسارات الحالي قفل دوران (spinlock) مع عداد تكرار خاص بكل وحدة معالجة مركزية (CPU). أصبح هذا النموذج التكراري غير صالح بعد أن أصبحت مسارات BTT قابلة للإيقاف المؤقت: حيث يمكن لمهمة أخرى العمل على نفس المعالج، ملاحظة وجود عدد تكرار غير صفري، تجاوز القفل، واستخدام المسار نفسه بشكل متزامن.
كما يتم الاحتفاظ بمسارات BTT عبر استدعاءات arena_write_bytes(). تصل هذه المسار إلى nsio_rw_bytes()، الذي يقوم بإفراغ الكتابات باستخدام nvdimm_flush(). يمكن لبعض استدعاءات الإفراغ الخاصة بالمزود أن تسبب النوم (sleep)، مما يجعل قفل الدوران غير مناسب لعمر المسار.
تم استبدال النموذج التكراري القائم على قفل الدوران بمصفوفة من أقفال الموتركس (mutex) مخصصة ديناميكياً لكل مسار، وأخذ قفل المسار بشكل غير مشروط.
تمت إضافة might_sleep() لالتقاط أي متصل محتمل في سياق ذري (atomic context) مستقبلاً.
اكتُشفت هذه المشكلة باستخدام اختبار الوحدة ndctl btt-check.sh.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.