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

الملخص

بحسب VulDB • 11/10/2026

تقوم الدالة `net_route_ipv6_packet()` في الملف الفرعي `subsys/net/ip/route_ipv6.c` بحل عنوان الطبقة الوصلية (link-layer address) للنقطة التالية (nexthop) باستخدام `net_nbr_get_lladdr(nbr->idx)` دون التحقق مسبقًا مما إذا كان إدخال ذاكرة التخزين المؤقت للجيران يحتوي فعليًا على عنوان طبقة وصلية مرتبط. يحمل الجار غير المحلول قيمة `idx == NET_NBR_LLADDR_UNKNOWN` (0xff)، وتقوم الدالة `net_nbr_get_lladdr()` في `subsys/net/ip/nbr.c` بإجراء فحص حدودي زمني محدود يتجاوز مجرد استدعاء `NET_ASSERT`، مما يعيد المؤشر `&net_neighbor_lladdr[255]` — أي ما يقارب 2.5 كيلوبايت بعد نهاية مصفوفة يكون حجمها الافتراضي هو `CONFIG_NET_IPV6_MAX_NEIGHBORS` (8). وبما أن المؤعر المعاد ليس NULL أبدًا، فإن الحارس التالي `lladdr == NULL` لا يلتقطه.

تُستدعى الدالة من خلال `ipv6_route_packet()` في `subsys/net/ip/ipv6.c` لكل حزمة IPv6 أحادية الاتجاه (unicast) مستلمة يكون وجهتها ليست عنوانًا محليًا على الواجهة المستقبلة؛ حيث يتم تمكين `CONFIG_NET_IPV6_ROUTE` افتراضيًا كلما كانت ذاكرة التخزين المؤقت لقرابة IPv6 مفعّلة، لذا لا يلزم أي تكوين للموجّه أو التوجيه. تُعيد الدالة `net_route_ipv6_get_info()` عنوان الوجهة الخاص بالحزمة نفسه كنقطة التالية (nexthop) عندما يوجد إدخال في ذاكرة التخزين المؤقت للجيران له، ولا يتخطى البحث في الذاكرة المؤقتة الإدخالات ذات الحالة "غير مكتملة" (INCOMPLETE). لذلك، يمكن لمهاجم غير مصرح له على نفس الرابط فرض حالة عدم الحل — على سبيل المثال عن طريق استحثاء حركة مرور نحو عنوان جار مزيف وغير موجود بحيث ينشئ `net_ipv6_send_ns()` إدخالًا بحالة INCOMPLETE، أو عن طريق إرسال إعلان موجّه (Router Advertisement) بدون خيار عنوان طبقة الوصلية للمصدر، مما يخلق جارًا غير محلول بشكل دائم — ثم إرسال حزمة موجهة إلى ذلك الجار.

النتيجة هي قراءة خارج النطاق عند فهرس ثابت يتجاوز مصفوفة عناوين طبقة الوصلية للجيران. في التجميعات التي يكون فيها `CONFIG_ASSERT` مفعّلاً، يُطلق التنبيه وينهار الجهاز (panic)، مما يوفر حجبًا للخدمة عن بُعد قابل للتكرار. مع تعطيلAssertions، يقود الهيكل القديم خارج النطاق `struct net_linkaddr` إجراء مقارنة ذاكرة (`memcmp()`) بطول غير متأثر بالمهاجم، وعندما يتجاوز بايت الطول (`len`) فحص `NET_LINK_ADDR_MAX_LENGTH`، يتم نسخ ما يصل إلى 8 بايتات من RAM ثابتة غير ذات صلة إلى عنوان طبقة الوصلية للوجهة في الإطار الخارجي وإرساله على الرابط، مما يكشفها لأي مستمع. لا توجد كتابة خارج النطاق والازاحة (offset) ليست خاضعة لسيطرة المهاجم، وهو ما يحدّ من التأثير.

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

مسؤول

Zephyr

حجز

11/08/2026

إفشاء

11/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-416739

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!