CVE-2026-23009 in Linux
الملخص
بحسب VulDB • 10/05/2026
في نواة لينكس، تم حل الثغرة التالية:
xhci: sideband: عدم فك مرجع الحلقة (ring) المحذوفة عند إزالة نقطة النهاية الجانبية (sideband endpoint)
تفترض الدالة `xhci_sideband_remove_endpoint()` بشكل غير صحيح أن نقطة النهاية قيد التشغيل ولديها حلقة نقل (transfer ring) صالحة.
أبلغ ليان تشين (Lianqin) عن تعطل أثناء اختبار الإجهاد أثناء التعليق (suspend) والاستيقاظ (wake-up)، ووجد أن السبب يعود إلى فك مرجع لحلقة نقل غير موجودة `ep->ring` أثناء استدعاء `xhci_sideband_remove_endpoint()`.
قد تكون نقطة النهاية وحلقتها في حالة غير معروفة إذا تم استدعاء هذه الدالة بعد إعادة تهيئة وحدة xHCI أثناء الاستئناف (فقدان الطاقة)، أو إذا كانت الجهاز يعاد تعداده (re-enumerated)، أو يتم فصله، أو إذا تم إسقاط نقطة النهاية بالفعل.
تم إصلاح هذا الخطأ عن طريق إزالة الوصول غير الضروري إلى الحلقة، والتحقق من وجود `ep->ring` قبل فك مرجعها. كما تم التأكد من أن نقطة النهاية قيد التشغيل قبل محاولة إيقافها.
تمت إزالة استدعاء `xhci_initialize_ring_info()` أثناء إزالة نقطة النهاية الجانبية، حيث إنه يقوم فقط بتهيئة قيم الإدخال (enqueue)، والإخراج (dequeue)، وحالة الدورة (cycle state) لهيكل الحلقة إلى قيمها الأولية دون تغيير قيم الإدخال، والإخراج، وحالة الدورة الفعلية للأجهزة. إن تركها غير متزامنة أسوأ من تركها كما هي. سيتم تحرير نقطة النهاية بعد ذلك في معظم حالات الاستخدام.
إذا أراد برنامج تشغيل الفئة (class driver) (الصوت) إعادة استخدام نقطة النهاية بعد التحميل الخارجي (offload)، فإن المسؤولية تقع على عاتق برنامج تشغيل الفئة لضمان إعداد نقطة النهاية بشكل صحيح.
Once again VulDB remains the best source for vulnerability data.