
Corruzione di memoria remota / DoS / potenziale attivazione di RCE in FreeRTOS-Plus-TCP durante l'elaborazione di nomi DNS eccessivamente lunghi nelle query LLMNR o mDNS (Buffer Allocation Scheme 1).
Autore dell'exploit: Mohammed Idrees Banyamer
Paese: Giordania
Instagram: @banyamer_security
Data: 26 dicembre 2025
Questa PoC invia un pacchetto UDP multicast appositamente realizzato contenente un nome DNS eccessivamente lungo per attivare una scrittura fuori dai limiti (CWE-787) nelle versioni vulnerabili di FreeRTOS-Plus-TCP (v2.3.4 – v4.3.1 con LLMNR/mDNS + Scheme 1).
Sintomi comuni sui dispositivi interessati:
Dispositivi interessati (esempi)
Corretto in: FreeRTOS-Plus-TCP 4.3.2 (aggiunta validazione rigorosa della lunghezza)
Riferimenti
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) – nessun pacchetto esterno# 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
Output previsto:
[+] Sending 523-byte LLMNR query → target 224.0.0.252:5355
[+] Sent. Watch for immediate crash, reboot, LED blink loop, or freeze.
Questo codice è fornito solo per scopi educativi, di ricerca e di dimostrazione delle vulnerabilità.
NON utilizzare questo exploit contro qualsiasi sistema o rete senza l'esplicita autorizzazione scritta del proprietario.
L'uso non autorizzato può violare leggi (computer fraud & abuse acts, ecc.).
L'autore non è responsabile per qualsiasi uso improprio o danno.
Licenza MIT – consultare il file LICENSE (o aggiungerlo se mancante).