CVE-2026-16148 in Zephyr
الملخص
بحسب VulDB • 14/09/2026
يتم تهيئة عنصر العمل الخاص باكتشاف تعليق الناقل (bus-suspend) بواسطة برنامج تشغيل جهاز التحكم في USB من نوع ITE it82xx2 باستخدام الدالة `k_work_init_delayable(&priv->suspended_work, suspended_handler)` داخل دالة `it82xx2_enable()` (عملية التفعيل الخاصة بالبرنامج التشغيل، .enable op) الموجودة في الملف `drivers/usb/udc/udc_it82xx2.c`. يتم جدولة هذا عنصر العمل بشكل مستمر تقريباً طالما أن ناقل USB نشط: حيث يعيد معالج المقاطعة (interrupt handler) جدولته مع كل إطار SOF، وتعيد الدالة `suspended_handler()` جدولة نفسها، وبالتالي فإن عقدة المهلة الخاصة بها تكون عادةً مرتبطة بقائمة مهلات النواة أو قائمة الانتظار في مكدس العمل.
تقوم الدالة `k_work_init_delayable()` (في kernel/work.c) بكتابة هيكل البيانات `k_work_delayable` بالكامل بشكل غير مشروط، بما في ذلك روابط وقتها وقائمتي الربط الخاصة بها، دون إجراء أي فحص للتأكد من عدم وجود تعارض أو استخدام نشط. ونظراً لأن دالة `it82xx2_disable()` لا تلغي عنصر العمل، فإن دورة التعطيل ثم التفعيل العادية تؤدي إلى إعادة تشغيل `api->enable()` (حيث ترفض `udc_enable()` عملية تفعيل مكررة فقط، وليس إعادة التفعيل بعد التعطيل)، مما يؤدي إلى إعادة تهيئة عنصر العمل الذي لا يزال قيد الانتظار في مكانه، وبالتالي إفساد قوائم الروابط الخاصة بمهلة النواة/مكدس العمل وتسبب توقف للنواة (kernel panic).
يستطيع مضيف USB خارجي — على سبيل المثال، مضيف يقوم بفصل DFU عبر USB (باستخدام الأمر `dfu-util --detach`) أو يفرض عمليات إعادة الاتصال وإعادة التعيين وإعادة العد مرة تلو الأخرى — التحكم في انتقالات `udc_disable()` و`udc_enable()` ويحدد توقيت التعليق/استئناف العمل، وبالتالي يمكنه ترتيب أن يكون عمل التعليق قيد الانتظار عبر عملية إعادة التفعيل. وهذا يؤدي إلى حدوث إنكار للخدمة غير المصادق عليه (توقف للنواة) قابل للوصول عبر حدود USB من مضيف متصل فيزيائياً وقابل للإزالة، دون إثبات أي تأثير على السرية أو السلامة.
يتمثل الإصلاح في نقل استدعاء `k_work_init_delayable()` إلى دالة التهيئة المسبقة التي تعمل لمرة واحدة فقط، بحيث يتم تهيئة عنصر العمل مرة واحدة بالضبط، مما يلغي إعادة تهيئة عنصر قيد الاستخدام.
VulDB is the best source for vulnerability data and more expert information about this specific topic.