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-10818 — WPForms Pro <= 1.10.1.1 - Nicht authentifiziertes beliebiges Dateischreiben über Chunked-Upload-Init-/Finalize-Reihenfolge | Kitploit
Tools/GitHubGitHub/nxploited/cve-2026-10818
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPenetrationstests
GitHubnxploited/cve-2026-10818

CVE-2026-10818

WPForms Pro <= 1.10.1.1 - Nicht authentifiziertes beliebiges Dateischreiben über Chunked-Upload-Init-/Finalize-Reihenfolge

Repository anzeigen
3vor 26 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-10818

WPForms Pro ≤ 1.10.1.1 – Nicht authentifiziertes beliebiges Dateischreiben durch Reihenfolge von Chunked-Upload-Init/-Finalize

CVE CVSS CWE Python

CVE-2026-10818

WPForms Pro ≤ 1.10.1.1 — Nicht authentifiziertes beliebiges Dateischreiben via Chunked Upload

Proof-of-Concept Exploit
Chunked-Upload-Init/-Finalize-Reihenfolge → Vorhersagbarer Pfad → Remote Code Execution


Schwachstellenübersicht

Das WPForms-Pro-Plugin für WordPress ist in allen Versionen bis einschließlich 1.10.1.1 anfällig für beliebiges Datei-Upload über die Funktion ajax_chunk_upload_finalize. Dies liegt daran, dass die Dateityp-Validierung nach erfolgt, nachdem Chunk-Metadaten und Dateiinhalte bereits auf die Festplatte geschrieben wurden, und die zusammengesetzte Datei bei fehlgeschlagener Validierung nicht gelöscht wird. Dadurch können nicht authentifizierte Angreifer Dateien hochladen, die ausführbar sein können, was Remote Code Execution ermöglicht.

Grundursache

root@kitploit:~
wpforms_upload_chunk_init     →  Metadaten werden VOR der Erweiterungsvalidierung erstellt
wpforms_upload_chunk          →  Chunk-Bytes werden unabhängig vom Init-Ergebnis geschrieben
wpforms_file_chunks_uploaded  →  Datei wird VOR der Typvalidierung assembliert
                              →  Datei bleibt auch bei fehlgeschlagener Validierung auf der Festplatte

Die Angriffskette nutzt einen kritischen Reihenfolgefehler im Lebenszyklus des chunked Uploads:

  1. Init erstellt Metadaten auf der Festplatte, bevor geprüft wird, ob die Dateierweiterung erlaubt ist
  2. Chunk lädt die Metadaten und schreibt Rohbytes in einen vorhersagbaren Pfad (SHA1(UUID)-0.chunk)
  3. Finalize assembliert die endgültige Datei vor der MIME-Typ-Validierung – und räumt bei Fehlschlag nicht auf
  4. Auf keinem der drei AJAX-Endpunkte wird eine Nonce-Überprüfung durchgesetzt
  5. Alle drei Routen sind für nicht authentifizierte Besucher registriert (wp_ajax_nopriv_*)

Funktionen

  • Multi-Target-Scanning – Liste von Zielen, gleichzeitig verarbeitet
  • Automatische Formularerkennung – durchsucht Seiten, Sitemaps und 100+ gängige Pfade, um WPForms-Upload-Felder zu finden
  • Versionserkennung – liest readme.txt und HTML-Quellen, um verwundbare WPForms-Versionen zu identifizieren
  • AJAX-Routenvalidierung – bestätigt, dass wpforms_upload_chunk_init extern erreichbar ist, bevor fortgefahren wird
  • Duale Upload-Strategie:
    • Finalisierte Uploads (init → chunk → finalize) mit sowohl sicheren als auch ausführbaren Erweiterungen
    • Chunk-only-Uploads (init → chunk, skip finalize) für deterministische Dateipfade via SHA1(UUID)
  • Vorhersagbare Pfadberechnung – berechnet SHA1(client-gesteuerte UUID), um die genaue Chunk-URL ohne Raten abzuleiten
  • Directory-Listing-Differenz – erstellt Schnappschüsse von /wpforms/tmp/ vor und nach Exec-Uploads, um neu geschriebene Dateien zu identifizieren
  • Hash-Leak-Extraktion – durchsucht alle Antworttexte und -header nach <32hex>.<ext> Dateinamen-Mustern
  • Ausführungsverifikation – bestätigt tatsächliche PHP-Ausführung durch Prüfung einer eindeutigen Signatur im Antworttext; filtert statisches Datei-Serving und Quellcode-Offenlegung aus
  • PATH_INFO-Probing – versucht Server-Handler-Bypässe (.chunk/x.php, ), um PHP-Ausführung auf Nicht-PHP-Erweiterungen auszulösen

Anforderungen

root@kitploit:~
Python >= 3.8
root@kitploit:~
pip install requests urllib3 beautifulsoup4

beautifulsoup4 ist optional, aber für eine zuverlässigere Feldextraktion empfohlen.


Verwendung

root@kitploit:~
python CVE-2026-10818.py

Sie werden nach Folgendem gefragt:

EingabeaufforderungBeschreibungStandard
ZieldateiPfad zu einer Textdatei mit einem Ziel pro Zeilelist.txt
ThreadsAnzahl der gleichzeitigen Worker (1–20)5

Ziel-Dateiformat

root@kitploit:~
https://example.com
http://target.org
subdomain.example.net
192.168.1.100
https://example.com/wordpress

Eine URL pro Zeile. Unterstützt http://, https://, nackte Domains, IPs und Unterverzeichnis-Installationen.


Ausgabe

Terminal

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃                                                                ┃
  ┃      ██▄    ██  ██  ██                                         ┃
  ┃      ████   ██   ████                                          ┃
  ┃      ██ ██  ██    ██                                           ┃
  ┃      ██  ████   ████                                           ┃
  ┃      ██   ███  ██  ██                                          ┃
  ┃                                                                ┃
  ┃      Nxploited  ━  Khaled Alenazi  ━  T.m @Kxploit             ┃
  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
  ┃      CVE-2026-10818     WPForms Pro ≤ 1.10.1.1                 ┃
  ┃      Chunked Upload → Predictable Path → RCE                  ┃
  ┃      Results ━▸ Nx_hit/                                        ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Während des Scans durchläuft jedes Ziel benannte Phasen:

root@kitploit:~
  02:14:52  ◆  target.com                        VER  WPForms 1.9.3.1 verwundbar
  02:14:53  ◆  target.com                       FORM  1 Upload-Formular(e) auf /contact
  02:14:53  ◆  target.com                     UPLOAD  6 sichere + 5 ausführbare Payloads
  02:14:55  ◆  target.com                        FIN  poly_png → a8f3...1b22.png URL zurückgegeben
  02:14:57  ◆  target.com                        DIR  Listing aktiviert, 4 Datei(en) vor Exec-Upload
  02:14:59  ◐  target.com                       EXEC  shell_php → finalisiert auf Festplatte (Hash unbekannt)
  02:15:01  ◆  target.com                        DIR  1 NEUE Exec-Datei(en) nach Upload!

  ●  target.com  SHELL  dir-new:7c4f...e8a1.php  https://target.com/wp-content/uploads/wpforms/tmp/7c4f...e8a1.php

Ergebnisdateien

Alle Ergebnisse werden in Nx_hit/ gespeichert:

DateiInhalt
Nx_shell.txtBestätigte RCE – URL, Bezeichnung und Antworttextvorschau
Nx_vuln.txtBestätigtes beliebiges Dateischreiben ohne Ausführungsverifikation

Zusammenfassung

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃  ABGESCHLOSSEN   150 Ziele verarbeitet                         ┃
  ┃                                                                ┃
  ┃  ● 3 shell     ◐ 12 vuln     ○ 85 skip     ✗ 50 miss          ┃
  ┃                                                                ┃
  ┃  Ergebnisse ━▸ Nx_hit/                                         ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Symbol

Scan-Pipeline

root@kitploit:~
Ziel
  │
  ├─ Erreichbarkeit (HTTPS → HTTP-Fallback)
  ├─ WPForms-Versionserkennung
  ├─ Formularerkennung (100+ Seitenpfade + Sitemap-Crawl)
  ├─ AJAX-Routenvalidierung
  │
  ├─ Phase 1: Sichere Uploads (png/jpg/pdf + finalize → URL)
  │     └─ Shell-Verifikation auf zurückgegebenen URLs
  │
  ├─ Phase 2: Verzeichnis-Schnappschuss (VORHER)
  │
  ├─ Phase 3: Exec-Uploads (php/phtml/php5/phar/shtml + finalize)
  │     ├─ Geleakte Dateinamen-Extraktion aus Antwort
  │     └─ Hash-Muster-Extraktion aus Body + Headern
  │
  ├─ Phase 4: Verzeichnis-Schnappschuss (NACHHER) → Diff → Neue Exec-Dateien
  │     └─ Shell-Verifikation auf jeder neuen Datei
  │
  ├─ Phase 5: Hash-Leak-Verifikation
  │     └─ URLs aus geleakten Hashes erstellen → Shell-Check
  │
  ├─ Phase 6: Chunk-Only-Uploads (kein finalize → vorhersagbarer SHA1-Pfad)
  │     └─ Direkter Zugriff + PATH_INFO-Bypass-Probing
  │
  └─ Ergebnisklassifikation (shell / vuln / skip / miss)

Haftungsausschluss

Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und Bildungsforschung bereitgestellt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben.

Unbefugter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch, Schäden oder rechtliche Konsequenzen, die aus der Nutzung dieser Software entstehen.

Durch die Nutzung dieses Tools erklären Sie sich damit einverstanden, dass Sie allein für Ihre Handlungen verantwortlich sind und alle geltenden Gesetze und Vorschriften einhalten werden.


Von: Nxploited
Khaled Alenazi
T.m @Kxploit

Tool herunterladen
FeldDetails
CVE-IDCVE-2026-10818
Betroffenes PluginWPForms Pro (WordPress)
Betroffene VersionenAlle Versionen bis einschließlich 1.10.1.1
TypNicht authentifiziertes beliebiges Dateischreiben
CWECWE-434: Unrestricted Upload of File with Dangerous Type
CVSS 3.18.1 HIGH — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
AuthentifizierungKeine erforderlich
/.php
  • Polyglot-Payloads – generiert gültige PNG-Bilder mit eingebettetem PHP nach dem IEND-Chunk
  • Professionelle Ausgabe – farbcodierte Echtzeit-Terminalanzeige mit Ziel-Statusverfolgung
  • Bedeutung
    ● shellPHP-Ausführung auf dem entfernten Ziel bestätigt
    ◐ vulnDatei auf Festplatte geschrieben, Ausführung nicht bestätigt
    ○ skipZiel nicht erreichbar, gepatcht oder kein Upload-Formular gefunden
    ✗ missUpload-Versuche fehlgeschlagen