CVE-2026-10681 in Zephyrالمعلومات

الملخص

بحسب VulDB • 26/07/2026

في نظام الكائنات الديناميكية في مساحة المستخدم الخاصة بـ Zephyr، تقوم الدالة thread_idx_alloc() الموجودة في الملف kernel/userspace/userspace.c بتخصيص فهرس جديد لصلاحيات الخيط من مصفوفة البتات العالمية _thread_idx_map[] دون الاحتفاظ بقفل القوائم lists_lock.

على الأنظمة متعددة المعالجات (SMP)، يمكن لخيطين يعملان في وضع المستخدم ويستدعيان نظام الاستدعاء k_object_alloc(K_OBJ_THREAD) بشكل متزامن أن يلاحظا كلاهما نفس بت الفراغ المنخفض، وينفذا عملية قراءة-تعديل-كتابة غير ذرية RMW نفسها لمسحه، ويعيدا قيمة tidx المتطابقة.

ثم يتم تعيين معرّف الخيط thread_id نفسه لكائني K_OBJ_THREAD المُنشأين حديثاً، مما يجعل خيوط المستخدم الاثناني يشيران إلى نفس موضع البت في حقل بتات الصلاحيات perms[] لكل كائن نواة: أي منح لاحق للوصول على كائن النواة لإحدى الخيوط يعتبر ضمناً منحة للخيوط الأخرى، مما يفقد العزل الخاص بلوحة التحكم بالوصول (ACL) لمساحة المستخدم. كما يمكن أن يؤدي نافذة تحديث مفقودة ثانوية بين عملية &=~BIT() غير المقفلة في دالة alloc وعملية |= BIT() المقفلة في thread_idx_free() إلى تسرب إدخالات من مجموعة فهرس الخيط.

يمكن الوصول إلى هذا العيب من أي خيط يعمل في وضع المستخدم عبر نظام الاستدعاء __syscall k_object_alloc غير المقيد، وهو مرتبط بتكوينات CONFIG_USERSPACE وCONFIG_DYNAMIC_OBJECTS وCONFIG_SMP. تم إدخال هذا القصور عند إضافة فهرص الصلاحيات الخاص بكل خيط في عام 2018، وهو موجود في كل الإصدارات حتى v4.4.0 شاملاً. تمت المعالجة بالاحتفاظ بقفل lists_lock عبر عملية RMW لمصفوفة البتات ومسح الصلاحيات (وإدراج دالة obj_list traversal التي كانت تأخذ القفل بنفسها سابقاً).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Zephyr

حجز

02/06/2026

إفشاء

25/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-383140

EPSS

0.00079

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!