CVE-2025-5688 的概念验证利用:通过精心构造的 LLMNR/mDNS 查询,在 FreeRTOS-Plus-TCP 中实现远程越界写入,导致易受攻击的物联网设备崩溃或潜在远程代码执行。
远程内存损坏 / 拒绝服务 / 潜在远程代码执行触发——在FreeRTOS-Plus-TCP处理LLMNR或mDNS查询中过长的DNS名称时发生(缓冲区分配方案1)。
漏洞利用作者: Mohammed Idrees Banyamer
所在国家: 约旦
Instagram: @banyamer_security
日期: 2025年12月26日
本PoC发送一个精心构造的UDP多播数据包,其中包含一个超长的DNS名称,以触发存在漏洞的FreeRTOS-Plus-TCP(v2.3.4 – v4.3.1,启用了LLMNR/mDNS且采用方案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攻击(默认多播)
python3 exploit.py LLMNR
# mDNS攻击
python3 exploit.py mDNS
# 自定义多播IP(很少需要)
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 文件(如果缺少,请自行添加)。