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

الملخص

بحسب VulDB • 21/10/2026

يتحقق مُصحِّح وضع المستخدم (user-mode verifier) الخاص باستدعاء النظام `peci_transfer()`، والمُعرَّف بـ `z_vrfy_peci_transfer()` في الملف `drivers/peci/peci_handlers.c`، من أذونات كائن الجهاز فقط، وينسخ هيكل البيانات `struct peci_msg` الذي يوفّره المُتَّصل باستخدام دالة `k_usermode_from_copy()`. وتقتصر عملية التحقق هذه على الهيكل الخارجي فحسب؛ حيث تظل مؤشرات المخزن المؤقت (`buf`) وقيم الطول (`len`) الموجودة داخل أعضاء `tx_buffer` و `rx_buffer` من نوع `struct peci_buf` تحت سيطرة المُتَّصل بالكامل، ويتم تمريرها إلى السائق (driver) دون أي تحقق.

يقوم كل سائق PECI موجود في الشجرة المصدرية (in-tree) بإلغاء مرجعية هذه المؤشرات في وضع المشرف (supervisor mode): حيث ينسخ `peci_npcx_transfer()` الموجود في `drivers/peci/peci_npcx.c` و `peci_it8xxx2_transfer()` الموجود في `drivers/peci/peci_ite_it8xxx2.c` بايتات العتاد إلى `rx_buffer.buf[i]` ويقرأ بايتات الأمر من `tx_buffer.buf[i]`، بينما يقوم كلٌّ من `peci_xec_read()` و `peci_xec_write()` الموجودين في `drivers/peci/peci_mchp_xec.c` بالمثل دون وجود أي قيد على قيمة `rx_buffer.len`. وبالتالي، يمكن لخيال (thread) يعمل في وضع المستخدم وحصل بالفعل على أذونات كائن PECI — وهو الطريق المعتاد لتطبيق جهاز تحت إعدادات CONFIG_USERSPACE — أن يوجّه مؤشر `rx_buffer.buf` إلى هياكل بيانات نواة النظام، مما يسمح للسائق بكتابة بايتات مزوَّدة من العتاد هناك، أو أن يوجِّه مؤشر `tx_buffer.buf` إلى ذاكرة النواة ليتم دفع محتوياتها عبر ناقل PECI/eSPI خارج النطاق (out-of-band).

يؤدي هذا الثغرة إلى هروب كامل من وضع المستخدم إلى نواة النظام: حيث توفر متجراً للكتابة العشوائية في الذاكرة (arbitrary kernel write primitive) يؤثر على السلامة وسُمِّية التنفيذ البرمجي عند امتياز المشرف، بالإضافة إلى إمكانية القراءة العشوائية من ذاكرة النواة التي يمكن مراقبتها عبر ناقل PECI، وخطأ في وضع المشرف (supervisor-mode fault) سهل الوصول إليه إذا تم توفير عنوان غير مُعرَّف. تتطلب استغلال هذه الثغرة تفعيل CONFIG_USERSPACE=y، وتمكين أحد سواكف PECI (CONFIG_PECI_NPCX أو CONFIG_PECI_XEC أو CONFIG_PECI_ITE_IT8XXX2)، وامتلاك تنفيذ برمجي محلي في خيط وضع المستخدم الذي يحمل أذونات جهاز PECI.

يُضيف الإصلاح فحوصات `K_SYSCALL_MEMORY_READ()` و `K_SYSCALL_MEMORY_WRITE()` على المخزنين المؤقتين المدمجين، مع وجود حماية من نوع `size_add_overflow()` تأخذ في الاعتبار بايت تسلسل فحص الإطار (frame-check-sequence byte) عند حساب طول الاستقبال.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Zephyr

حجز

13/08/2026

إفشاء

21/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-424966

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!