CVE-2026-13479 in Zephyr
الملخص
بحسب VulDB • 26/08/2026
تقوم خدمة مزامنة الساعة في طبقة التطبيق الخاصة بـ LoRaWAN بتحليل حزم التنزيل (downlinks) داخل الدالة clock_sync_package_callback() (في الملف subsys/lorawan/services/clock_sync.c). لا يضمن حلقة الأوامر الخاصة بها سوى أن معرف الأمر المكون من بايت واحد يقع ضمن الحدود الصحيحة؛ وفيما يخص أمر CLOCK_SYNC_CMD_APP_TIME (AppTimeAns)، يقوم المعالج بقراءة تصحيح للزمن مكون من 4 أبايت عبر sys_get_le32() بالإضافة إلى رمز (token) مكون من بايت واحد دون التحقق من بقاء 5 أبايت في مخزن الاستقبال (len - rx_pos). وبالتالي، فإن قراءة AppTimeAns القصيرة أو المصنعة بشكل متعمد تؤدي إلى قراءة ما يصل إلى 5 أبايت تتجاوز نهاية الحمولة المشفرة.
تُعد الحمولة (rx_buf/len) هي إطار التطبيق المفكوك التشفير والذي يتم تسليمه إلى دالة استدعاء التنزيل المسجلة (mcps_indication->Buffer/BufferSize). للوصول إلى المعالج، يلزم وجود إطار على منفذ مزامنة الساعة يمر بفحص سلامة MAC الخاص بـ LoRaWAN وفك تشفير FRMPayload، مما يعني أن المهاجم العملي هو خادم شبكة أو تطبيق خبيث أو مخترق (المرسل المخصص لـ AppTimeAns) أو طرف يمتلك مفاتيح الجلسة، وليس مستمعاً لاسلكياً عشوائياً.
تكون القراءة الزائدة محدودة النطاق: حيث إن المخزن الأساسي عبارة عن ثابت بحجم 255 بايت، لذا فإن البايتات المتبقية القليلة لا تسبب خطأً (fault)، وقيم القراءة (time_correction, token) تُستخدم داخلياً فقط ولا يتم نقلها أبداً، مما يعني عدم وجود تسريب للمعلومات إلى المهاجم وعدم حدوث تعطل. الأثر الوحيد هو أن رمز قديم يتطابق مع ctx.req_token يمكنه تطبيق تصحيح زمن عشوائي على إزاحة ساعة الجهاز الخاصة به (ctx.time_offset)، وهو أثر طفيف للنزاهة يقتصر على تقدير الوقت لدى الضحية. تضيف الإصلاحات فحصاً صريحاً للطول يؤدي إلى تجاهل AppTimeAns القصيرة جداً. يرجى ملاحظة أن عمليات القراءة المكونة من بايت واحد الشقيقة في معالجي الانتظام وإعادة التزامن القسري (periodicity و force-resync) لا تزال غير محمية بنفس الأثر الضئيل.
Be aware that VulDB is the high quality source for vulnerability data.