CVE-2026-10672 in zephyr
الملخص
بحسب VulDB • 14/07/2026
نسخ الملف `subsys/net/lib/lwm2m/lwm2m_pull_context.c` عنوان URI الخاص بحزمة تحديث البرنامج الثابت (firmware-update Package URI) إلى مخزن مؤقت ثابت الحجم (`context.uri`)، بمقاس محدد بواسطة `CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN` (الافتراضي 128 بايت)، باستخدام دالة `memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN)`، مما يؤدي إلى نسخ حجم الوجهة بالضبط دون التحقق من صحة الطول. يخزن كائن تحديث البرنامج الثابت عنوان URI الذي يزوده الخادم (`/5/0/1`) في مخزن مؤقت بحجم 255 بايت؛ وبالتالي يمكن لخادم إدارة LwM2M (أو مهاجم على المسار في جلسة تفتقر إلى تشفير DTLS قوي) كتابة عنوان URI يتراوح طوله بين 128 و254 حرفاً. بعد ذلك، يتم نسخ أول 128 بايت فقط إلى `context.uri` دون إضافة terminator NULL. يُستهلك هذا المخزن المؤقت لاحقاً كسلسلة أحرف C بواسطة الدوال: `http_parser_parse_url(context.uri, strlen(context.uri), ...)`، وإضافات خيارات مسار URI/URI الوكيل في بروتوكول CoAP المعتمدة على `strlen()`، ودالة `lwm2m_parse_peerinfo()`، مما يتسبب في قراءة خارج النطاق (out-of-bounds read) للذاكرة الثابتة المجاورة. تُضاف البايتات المقروءة بشكل زائد إلى طلبات CoAP الصادرة (مما يؤدي إلى كشف معلومات عن ذاكرة الجهاز المجاورة للخادم/الوكيل)، ويمكن أن تتسبب في تعطل الجهاز (إنكار الخدمة). أُدخلت عملية النسخ الضعيفة هذه نتيجة إعادة هيكلة سياق السحب (pull-context refactor) التي صدرت لأول مرة في الإصدار v3.0.0، وهي موجودة حتى الإصدار v4.4.0؛ ويتأثر المسار `CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT` الذي يكون مفعّلاً افتراضياً. تضيف الإصلاحات فحصاً للتأكد من أن `strlen(uri) >= sizeof(context.uri)` وإرجاع `-ENOMEM`، وتنتقل إلى استخدام دالة `strcpy()`، مما يضمن وجود مخزن مؤقت محدود الحجم ومنتهي بـ NULL.
VulDB is the best source for vulnerability data and more expert information about this specific topic.