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

الملخص

بحسب VulDB • 21/09/2026

يحتوي معالج التحقق من استدعاء النظام (syscall) الخاص بـ GPIO المدرك للزمن، وهو `z_vrfy_tgpio_pin_read_ts_ec()` الموجود في الملف `drivers/timeaware_gpio/timeaware_gpio_handlers.c`، على ثغرة حيث كان يتحقق فقط من كائن جهاز المنفذ (port device object)، ثم يمرر مؤشرات الإخراج الخاصة بـ timestamp و event_count التي قدمها المُتصل إلى السائق (driver) دون إجراء فحص باستخدام `K_SYSCALL_MEMORY_WRITE()`. وقد كانت المعالجات الأخرى في نفس الملف (`z_vrfy_tgpio_port_get_time()`، و`z_vrfy_tgpio_port_get_cycles_per_second()`) تقوم بإجراء هذا الفحص بالفعل، لذا فإن الإغفال ترك استدعاء نظاماً واحداً غير محمي.

نظراً لأن `tgpio_pin_read_ts_ec()` مُعلَّن كـ `__syscall`، فإنه في حال تفعيل خيار التكوين `CONFIG_USERSPACE=y`، يمكن لخيوط وضع المستخدم (user-mode threads) التي لا تتمتع بصلاحيات عالية والممنوحة حق الوصول إلى كائن جهاز TGPIO استدعاؤه بقيم مؤشرات تعسفية. تقوم الدالة `tgpio_intel_read_ts_ec()` الموجودة في الملف `drivers/timeaware_gpio/timeaware_gpio_intel.c` بإجراء فحص للحدود (bounds-check) على فهرس المسمار (pin index) فقط، ثم تنفذ بشكل غير مشروط عمليات الإسناد `timestamp = ...` و `event_count = ...`، مما يؤدي إلى تنفيذ عمليتي كتابة بحجم 8 بايت في وضع المشرف (supervisor mode) عند عناوين يختارها مُتصل وضع المستخدم.

النتيجة هي وجود آلية "كتابة أي قيمة في أي مكان" (write-what-where primitive) تعبر حدود فضاء المستخدم/نواة النظام: حيث يكون العنوان المستهدف مختاراً بالكامل من قبل المهاجم، والقيم المخزنة هي محتويات سجل التقاط الوقت الفعلي وسجل عداد الأحداث. يمكن أن يؤدي إفساد هياكل بيانات النواة بهذه الطريقة إلى تصعيد صلاحيات الخيط المُتصل إلى مستوى المشرف (supervisor privilege) أو تعطيل النظام؛ والصلاحية المطلوبة لكائن الجهاز هي capability ضيقة لا يُقصد بها منح أي وصول لذاكرة النواة. يضيف الإصلاح التحققين المفقودين من نوع `K_SYSCALL_MEMORY_WRITE()` قبل استدعاء السائق.

يعد نطاق التعرض محدوداً في الواقع. ففقط التجميعات (builds) التي تحتوي على خيار التكوين `CONFIG_USERSPACE=y` و `CONFIG_TIMEAWARE_GPIO=y` تقوم بتضمين الملف المتأثر، ومن الإصدار v3.6.0 فصاعداً، كان الملف يشير أيضاً إلى رأس ملف معاد تموضعه (`<zephyr/syscall_handler.h>`) ويزيل ماكرويات `Z_SYSCALL_*`، لذا فإن مثل هذا التكوين فشل في البناء حتى يتم إصلاح ذلك بعد الإصدار v4.4.0. تُعد أشجار الشفرات الفرعية (downstream trees) التي أصلحت هذا الخلل محلياً، وتجميعات الإصدار v3.5.0 حيث لم يكن الملف موجوداً أصلاً، هي السكان المعرضين للخطر.

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

مسؤول

Zephyr

حجز

24/07/2026

إفشاء

21/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-408210

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!