CVE-2026-10663 in zephyrالمعلومات

الملخص

بحسب VulDB • 12/07/2026

في مكدس المضيف USB التجريبي الخاص بـ Zephyr (CONFIG_USB_HOST_STACK)، تقوم الدالة usbh_device_disconnect() (subsys/usb/host/usbh_device.c) بإفراغ كائن slab الجذر usb_device دون مسح المؤشر المخزن مؤقتاً ctx->root. يقرر معالج إزالة الناقل dev_removed_handler() (subsys/usb/host/usbh_core.c) ما يجب تفكيكه بناءً على ctx->root فقط، حيث يتحقق مما إذا كان غير فارغ (non-NULL).

نظراً لأن برامج تشغيل وحدات تحكم UHC (مثل uhc_max3421e وuhc_mcux_common) تقوم بتوليد حدث UHC_EVT_DEV_REMOVED مباشرة من حالة خط الناقل الفيزيائي دون أي ترشيح زمني (debounce) أو حماية للحالة، يمكن لمهاجم لديه وصول فيزيائي إلى USB (أو جهاز خبيث يقوم بقطع الاتصال وإعادة توصيله بشكل متكرر) إرسال حدث إزالة جهاز ثانٍ بعد فصل الجهاز الجذر. يؤدي ذلك إلى إعادة دخول المعالج للدالة usbh_device_disconnect() باستخدام مؤشر معلق (dangling pointer)، مما يسبب قفلاً لـ mutex داخل الكائن المفرغ بالفعل (استخدام بعد الإفراغ use-after-free)، وإزالة العقدة المفروغة من قائمة الأجهزة، واستدعاء k_mem_slab_free() على الكتلة التي تم إفراغها مسبقاً (إفراغ مزدوج double-free). إذا تمت إعادة إصدار كتلة slab لجهاز جديد متصل في هذه الأثناء، فإن ذلك يؤدي إلى تلف كائن نشط.

النتيجة هي حجب الخدمة (تعطل) وتلف الذاكرة؛ ومتجه الهجوم هو الفيزيائي/المحلي. تم إدخال هذا العيب في الإصدار v4.4.0 نتيجة إعادة هيكلة الاتصال/الفصل، وتم إصلاحه عن طريق مسح ctx->root في الدالة usbh_device_disconnect() قبل الإفراغ.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Zephyr

حجز

02/06/2026

إفشاء

12/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-377884

EPSS

0.00000

KEV

لا

النشاطات

متوسط

المصادر

Interested in the pricing of exploits?

See the underground prices here!