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-84434 — Python PoC scanner and exploit for CVE-2026-84434, an unauthenticated arbitrary file upload in Gravity Forms <=3.1.0.4 via hidden File Upload fields. Supports check, exploit, and mass scan modes. | Kitploit
Tools/GitHubGitHub/murrez/cve-2026-84434
ReconnaissanceVulnerability ScannersVulnerability AnalysisExploitationScripting & AutomationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubmurrez/cve-2026-84434

CVE-2026-84434

Python PoC scanner and exploit for CVE-2026-84434, an unauthenticated arbitrary file upload in Gravity Forms <=3.1.0.4 via hidden File Upload fields. Supports check, exploit, and mass scan modes.

11 day 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
View Repository

CVE-2026-84434 — Gravity Forms Unauthenticated Arbitrary File Upload

Python 3 PoC scanner and exploit for CVE-2026-84434 in Gravity Forms.

Plugingravityforms
Affected≤ 3.1.0.4
Fixed in3.1.0.5+ (vendor security release 3.1.1)
CVSS9.8 (Critical)
AuthUnauthenticated
CWECWE-434 — Unrestricted Upload
Credit0xd4rk5id3 — EnvoraSec (Wordfence)

Summary

Hidden File Upload fields skip extension validation in the validation pipeline, while the persistence path may still call upload_file() without equivalent checks. An unauthenticated attacker can POST to a public form that includes a File Upload field with Visibility → Hidden.

Files are stored under wp-content/uploads/gravity_forms/. Gravity Forms typically adds .htaccess rules to block PHP execution; RCE depends on server configuration (nginx, alternate docroot, etc.).

Attack flow

  1. Detect Gravity Forms and version ≤ 3.1.0.4
  2. Crawl public pages for gform_wrapper and a hidden fileupload field (input_{form}_{field})
  3. Fill required visible fields with placeholders
  4. Multipart POST (gform_submit, is_submit_{id}, file on hidden input)
  5. Confirm via confirmation message / entry hints / optional marker fetch

Requirements

  • Python 3.9+
  • pip install -r requirements.txt

Usage

root@kitploit:~
pip install -r requirements.txt

# Check single target
python poc.py -u https://target.example --mode check

# Mass check
python poc.py --list targets.example.txt --mode check --threads 30 --quiet

# Exploit (built-in benign .txt probe unless --payload-file is set)
python poc.py -u https://target.example --mode exploit \
  --form-id 3 --page-url /contact/ --file-field 7

# Custom upload file (your own probe — not included in this repo)
python poc.py -u https://target.example --mode exploit \
  --form-id 3 --page-url /contact/ --file-field 7 \
  --payload-file probe.txt

# Mass exploit from check output
python poc.py --list candidates.jsonl --mode exploit --threads 10 --quiet

CLI options

Output (mass check)

FileContent
cve_2026_84434_results.jsonl

Common status values (check)

Limitations

  • Check mode only sees hidden upload fields rendered in public HTML; admin-only hidden fields are not discoverable remotely.
  • FOFA-style lists contain many patched sites or forms without hidden upload — expect low candidate rate.
  • Default exploit uploads a harmless text marker, not a webshell.

Repository layout

root@kitploit:~
.
├── poc.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore

Local scan lists and artifacts (list.txt, *.jsonl, custom payloads) are in .gitignore and should not be committed.

Legal

For authorized security testing only. You are responsible for compliance with applicable laws and program rules.

Download Tool
OptionDescription
-u, --urlSingle target base URL
--listURL list, FOFA-style CSV, or candidates.jsonl
--modecheck (default) or exploit
--form-idGravity Form ID
--page-urlPath or URL of the page hosting the form
--file-fieldHidden file upload field ID
--payload-fileLocal file to upload (default: in-memory benign .txt marker)
--pathsExtra paths to crawl for forms
--threads, -jMass concurrency (default 20)
--outputJSONL results (default cve_2026_84434_results.jsonl)
--vuln-listHit URLs or exploit successes (default hits.txt)
--candidates-listCheck metadata (default candidates.jsonl)
--quietLess progress output on mass runs
Full JSON per target
hits.txtCandidate base URLs
candidates.jsonlform_id, page_url, file_field / input_name
StatusMeaning
candidateVulnerable version + hidden file upload on a public form
forms_no_hidden_uploadForms found, none with hidden file upload in HTML
plugin_no_public_formsPlugin present, no public form discovered
patchedVersion > 3.1.0.4
no_pluginGravity Forms not detected