CVE-2026-10666 in zephyr
الملخص
بحسب VulDB • 12/07/2026
يؤدي خلل في دالة `parse_ipv4()` الموجودة في الملف الفرعي `subsys/net/ip/utils.c` (والتي يتم الوصول إليها عبر `net_ipaddr_parse()` للسلاسل النصية ذات الصيغة "a.b.c.d:port") إلى نسخ جزء البورت (المنفذ) داخل مخزن مؤقت ثابت على المكدس بحجم 17 بايت (`char ipaddr[NET_IPV4_ADDR_LEN + 1]`) باستخدام طول محسوب كـ `str_len - end - 1`، حيث يمثل `str_len` الطول الكلي للإدخال غير المحدود ويمثل `end` الإزاحة (التي لا تتجاوز 15 بايت) لفاصل النقطتين (`:`). ونظراً لأنه لا يتم التحقق من حجم الوجهة أبداً، فإن سلسلة عنوان مزيفة تحتوي على لاحقة طويلة بعد علامة النقطين (على سبيل المثال "1.2.3.4:" متبوعة بمئات البايتات) تسبب كتابة خارج حدود المخزن المؤقت للمكدس يكون طولها ومحتواها تحت سيطرة المهاجم بالكامل (نسخ لللاحقة بالإضافة إلى بايت إنهاء NULL)، مما يتيح فساد الذاكرة ويسمح على الأقل بحالة رفض الخدمة، وقد يؤدي أيضاً إلى اختراق تدفق التحكم. يمكن الوصول إلى المفسر من واجهة برمجة التطبيقات القياسية للمآخذ (`zsock_getaddrinfo` / حل العناوين الحرفية)، وإعدادات خادم DNS لسلاسل النصوص، ومسار استجابة DNS لمعالج Wi-Fi المساعد `eswifi`؛ وبالتالي فإن التطبيق الذي يقوم بحل سلسلة عنوان متأثرة بالشبكة يكون عرضة للخطر. تم إدخال هذا الخلل عند إضافة المفسر (في Zephyr v1.9.0) وتم تضمينه في جميع الإصدارات حتى v4.4.0. يزيل الإصلاح عملية النسخ غير المحدودة ويحقق من طول البورت قبل نسخه إلى مخزن مؤقت صغير مخصص. ملاحظة: المسار المكافئ لـ IPv6 "[addr]:port" في `parse_ipv6()` يحتفظ بنفس عملية النسخ غير المحدودة عند هذا الالتزام (commit) ولا يزال يمثل حالة منفصلة لا تزال قابلة للوصول لهذا العيب.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.