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-10818 — WPForms Pro <= 1.10.1.1 - Unauthenticated Arbitrary File Write via Chunked Upload Init/Finalize Ordering | Kitploit
Tools/GitHubGitHub/nxploited/cve-2026-10818
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubnxploited/cve-2026-10818

CVE-2026-10818

WPForms Pro <= 1.10.1.1 - Unauthenticated Arbitrary File Write via Chunked Upload Init/Finalize Ordering

View Repository
321 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-10818

WPForms Pro <= 1.10.1.1 - Unauthenticated Arbitrary File Write via Chunked Upload Init/Finalize Ordering

CVE CVSS CWE Python

CVE-2026-10818

WPForms Pro ≤ 1.10.1.1 — Unauthenticated Arbitrary File Write via Chunked Upload

Proof-of-Concept Exploit
Chunked Upload Init/Finalize Ordering → Predictable Path Exposure → Remote Code Execution


Vulnerability Overview

FieldDetail
CVE IDCVE-2026-10818
Affected PluginWPForms Pro (WordPress)
Affected VersionsAll versions up to and including 1.10.1.1
TypeUnauthenticated Arbitrary File Write
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
AuthenticationNone required

The WPForms Pro plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.10.1.1 via the ajax_chunk_upload_finalize function. This is due to the file type validation occurring after chunk metadata and file contents have already been written to disk, and the assembled file not being deleted upon validation failure. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible.

Root Cause

root@kitploit:~
wpforms_upload_chunk_init     →  Metadata created BEFORE extension validation
wpforms_upload_chunk          →  Chunk bytes written regardless of init result
wpforms_file_chunks_uploaded  →  File assembled BEFORE type validation
                              →  File persists on disk even when validation fails

The vulnerability chain exploits a critical ordering flaw in the chunked upload lifecycle:

  1. Init creates metadata on disk before checking if the file extension is allowed
  2. Chunk loads the metadata and writes raw bytes to a predictable path (SHA1(UUID)-0.chunk)
  3. Finalize assembles the final file before validating its MIME type — and does not clean up on failure
  4. No nonce verification is enforced on any of the three AJAX endpoints
  5. All three routes are registered for unauthenticated visitors (wp_ajax_nopriv_*)

Features

  • Multi-target scanning — feed a list of targets, processed concurrently
  • Automatic form discovery — crawls pages, sitemaps, and 100+ common paths to locate WPForms upload fields
  • Version detection — reads readme.txt and HTML source to identify vulnerable WPForms versions
  • AJAX route validation — confirms wpforms_upload_chunk_init is externally reachable before proceeding
  • Dual upload strategy:
    • Finalized uploads (init → chunk → finalize) with both safe and executable extensions
    • Chunk-only uploads (init → chunk, skip finalize) for deterministic file paths via SHA1(UUID)
  • Predictable path calculation — computes SHA1(client-controlled UUID) to derive the exact chunk URL without guessing
  • Directory listing diff — snapshots /wpforms/tmp/ before and after exec uploads to identify newly written files
  • Hash leak extraction — scans all response bodies and headers for <32hex>.<ext> filename patterns
  • Execution verification — confirms actual PHP execution by checking for a unique signature in the response body, filtering out static file serving and source code disclosure
  • PATH_INFO probing — attempts server-handler bypasses (.chunk/x.php, /.php) to trigger PHP execution on non-PHP extensions
  • Polyglot payloads — generates valid PNG images with embedded PHP after the IEND chunk
  • Professional output — real-time color-coded terminal display with per-target status tracking

Requirements

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

beautifulsoup4 is optional but recommended for more reliable form field extraction.


Usage

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

You will be prompted for:

PromptDescriptionDefault
Targets filePath to a text file containing one target per linelist.txt
ThreadsNumber of concurrent workers (1–20)5

Target File Format

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

One URL per line. Supports http://, https://, bare domains, IPs, and subdirectory installations.


Output

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/                                        ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

During the scan, each target progresses through labeled stages:

root@kitploit:~
  02:14:52  ◆  target.com                        VER  WPForms 1.9.3.1 vulnerable
  02:14:53  ◆  target.com                       FORM  1 upload form(s) on /contact
  02:14:53  ◆  target.com                     UPLOAD  6 safe + 5 exec payloads
  02:14:55  ◆  target.com                        FIN  poly_png → a8f3...1b22.png URL returned
  02:14:57  ◆  target.com                        DIR  listing enabled, 4 file(s) before exec upload
  02:14:59  ◐  target.com                       EXEC  shell_php → finalized on disk (hash unknown)
  02:15:01  ◆  target.com                        DIR  1 NEW exec file(s) after upload!

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

Result Files

All results are saved to Nx_hit/:

FileContent
Nx_shell.txtConfirmed RCE — URL, label, and response body preview
Nx_vuln.txtConfirmed arbitrary file write without execution verification

Summary

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃  COMPLETE   150 targets processed                              ┃
  ┃                                                                ┃
  ┃  ● 3 shell     ◐ 12 vuln     ○ 85 skip     ✗ 50 miss          ┃
  ┃                                                                ┃
  ┃  Results ━▸ Nx_hit/                                            ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
SymbolMeaning
● shellPHP execution confirmed on remote target
◐ vulnFile written to disk, execution not confirmed
○ skipTarget unreachable, patched, or no upload form found
✗ missUpload attempts failed

Scan Pipeline

root@kitploit:~
Target
  │
  ├─ Reachability (HTTPS → HTTP fallback)
  ├─ WPForms Version Detection
  ├─ Form Discovery (100+ page paths + sitemap crawl)
  ├─ AJAX Route Validation
  │
  ├─ Phase 1: Safe Uploads (png/jpg/pdf + finalize → URL)
  │     └─ Shell verification on returned URLs
  │
  ├─ Phase 2: Directory Snapshot (BEFORE)
  │
  ├─ Phase 3: Exec Uploads (php/phtml/php5/phar/shtml + finalize)
  │     ├─ Leaked filename extraction from response
  │     └─ Hash pattern extraction from body + headers
  │
  ├─ Phase 4: Directory Snapshot (AFTER) → Diff → New exec files
  │     └─ Shell verification on each new file
  │
  ├─ Phase 5: Hash Leak Verification
  │     └─ Build URLs from leaked hashes → Shell check
  │
  ├─ Phase 6: Chunk-Only Uploads (no finalize → predictable SHA1 path)
  │     └─ Direct access + PATH_INFO bypass probing
  │
  └─ Result Classification (shell / vuln / skip / miss)

Disclaimer

This tool is provided strictly for authorized security testing and educational research purposes. Use it only on systems you own or have explicit written permission to test.

Unauthorized access to computer systems is illegal. The author assumes no liability for misuse, damage, or any legal consequences resulting from the use of this software.

By using this tool, you agree that you are solely responsible for your actions and that you will comply with all applicable laws and regulations.


By: Nxploited
Khaled Alenazi
T.m @Kxploit

Download Tool