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

الملخص

بحسب VulDB • 18/08/2026

يأخذ معالج استقبال بروتوكول الوقت الدقيق (Precision Time Protocol) الخاص بـ Zephyr، وهو `ptp_msg_post_recv()` الموجود في الملف الفرعي `subsys/net/lib/ptp/msg.c`، نوع الرسالة المكون من 4 بتات مباشرةً من البيانات الواردة عبر الشبكة باستخدام دالة `ptp_msg_type()` (`msg->header.type_major_sdo_id & 0xF`, نطاق القيم من 0 إلى 15)، ويستخدمها كمؤشر (index) لجدول `msg_size[]`. لا يحتوي هذا الجدول على تعريفات تتجاوز قيمة `PTP_MSG_MANAGEMENT` (التي تساوي 0xD)، مما يعني أن حجمه (`ARRAY_SIZE`) يساوي 14. قبل الإصلاح، لم يكن هناك فحص للحد الأعلى، لذا فإن الأنواع غير المعرفة 0xE و 0xF كانت تؤدي إلى قراءة خانتين أو خانة واحدة من نوع `int` تتجاوز نهاية المصفوفة — وهو ما يمثل قراءة خارج النطاق (out-of-bounds read) لبيانات قابلة للقراءة فقط مجاورة.

يتم بعد ذلك إعادة استخدام القيمة الخارجة عن النطاق كطول: فهي تُستخدم للتحقق مما إذا كان `msg_size[type] > cnt`. وعندما تكون هذه القيمة صغيرة أو سالبة، فإنها تجعل التعبير `cnt - msg_size[type]` يمثل ميزانية إيجابية كبيرة يتم تمريرها إلى دالة `msg_tlv_post_recv()`، والتي تقوم بدورها بتكرار معالجة عناصر TLV (Type-Length-Value) للمرور عبر لاحقة الرسالة بما يتجاوز البايتات المستلمة، مما يؤدي إلى مزيد من القراءات خارج النطاق وعمليات كتابة لتبديل بايتات في المكان (in-place byte-swap writes) على الذاكرة الواقعة خارج نطاق رسالة slab.

يتم الوصول إلى هذا العيب مباشرةً من خلال الشبكة: تقرأ دالة `ptp_port_event_gen()` الموجودة في الملف الفرعي `subsys/net/lib/ptp/port.c` إطار PTP باستخدام `ptp_transport_recv()` وتستدعي `ptp_msg_post_recv()` مع نوع تختاره المهاجم. يستخدم بروتوكول PTP البث المتعدد عبر UDP أو Ethernet الخام (0x88F7) وهو غير مُصادَق عليه، لذا يمكن لأي مضيف على نفس الرابط تشغيل عملية الفهرسة على عقدة مفعّلة بتكوين `CONFIG_PTP` دون أي شروط مسبقة.

الأثر القابل للتكرار بشكل موثوق هو حجب الخدمة (DoS/انهيار النظام); بينما يوجد مسار محدود لتلف الذاكرة، إلا أنه يعتمد على قيمة محددة أثناء البناء مجاورة لـ `msg_size[]`، والتي لا يمكن للمهاجم التحكم فيها. يقبل الإصلاح النوع `< ARRAY_SIZE(msg_size)` ويرفض الأنواع الأكبر من أو تساوي حجم المصفوفة بإرجاع الخطأ `-EBADMSG` قبل أي عملية فهرسة.

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

مسؤول

Zephyr

حجز

18/06/2026

إفشاء

19/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-392014

EPSS

0.00248

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!