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

الملخص

بحسب VulDB • 14/07/2026

في تنفيذ الأنابيب (pipes) في نواة Zephyr، كان المُتحقق من استدعاءات النظام الخاصة بمساحة المستخدم `z_vrfy_k_pipe_init()` الموجودًا في الملف `kernel/pipe.c` يستخدم الدالة `K_SYSCALL_OBJ()` (التي تتطلب أن يكون كائن النواة مُهيأً مسبقاً) بدلاً من `K_SYSCALL_OBJ_NEVER_INIT()` (الترفض الكائنات المُهيئة بالفعل). ونتيجة لذلك، في عمليات البناء التي تتضمن خيار `CONFIG_USERSPACE`، يمكن لخيوط المستخدم غير المميزة (unprivileged user threads) الممنوحة صلاحية الوصول إلى كائن `k_pipe` استدعاء عملية التهيئة `k_pipe_init` لإعادة تهيئة أنبوب يكون قيد الاستخدام بالفعل.

تقوم الدالة `z_impl_k_pipe_init()` بإعادة تعيين حلقة التخزين المؤقت (ring buffer)، وتعيين قيمة `pipe->waiting` إلى 0، وإعادة تهيئة طوابير الانتظار كلياً (`z_waitq_init` على كل من `pipe->data` و `pipe->space`) دون إيقاظ الخيوط أو أخذها في الاعتبار إذا كانت معلقة حالياً على الأنبوب. أي خيط كان معلّقاً مسبقاً داخل عمليات القراءة/الكتابة للأنبوب (`k_pipe_read()` / `k_pipe_write()`) يُترك يتيم الحالة: لا يزال مُعلَّماً بأنه "معلق" مع مؤشر `pended_on` الذي يشير إلى طابور الانتظار المُفرغ، ومع روابط قديمة (stale) لـ `qnode_dlist` داخل رأس القائمة المضمنة التي أعيد تهيئتها حديثاً.

عندما يتم لاحقاً إنهاء مهلة هذا الخيط المتيم أو إيقاظه، يستدعي الجدول النظامي (`scheduler`) الدالة `sys_dlist_remove()` على العقدة القديمة الخاصة به، مما يؤدي إلى الكتابة عبر مؤشرات سابقة/لاحقة معلقة (dangling pointers) داخل هياكل طابور الانتظار في النواة والجدولة، مسبباً تلفاً في القائمة (وهو ما يمثل كتابة غير صالحة للنواة مدفوعة من قبل مهاجم)، وفقدان إشارات الإيقاظ، وتعليق الخيوط إلى الأبد، وفقدان البيانات بصمت. تتيح هذه الثغرة لخيوط المستخدم منزوعة الصلاحيات إتلاف حالة كائن نواة مشترك مع خيوط/أقسام أخرى.

يعالج الإصلاح المشكلة عن طريق تبديل المُتحقق ليستخدم `K_SYSCALL_OBJ_NEVER_INIT()`، بما يتوافق مع مُتحقق التهيئة الموجود بالفعل في `k_msgq_init`، بحيث لم يعد بإمكان خيط المستخدم إعادة تهيئة أنبوب نشط. تم شحن الكود الضعيف في الإصدار v4.1.0 واستمر حتى الإصدار v4.4.0.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Zephyr

حجز

02/06/2026

إفشاء

14/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-378315

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!