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-92229 — Python 3 PoC scanner and exploit for CVE-2026-92229, an unauthenticated arbitrary shortcode execution flaw in Forminator WordPress plugin versions 1.57.2 and below. | Kitploit
Tools/GitHubGitHub/murrez/cve-2026-92229
Vulnerability ScannersVulnerability AnalysisExploitationScripting & AutomationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubmurrez/cve-2026-92229

CVE-2026-92229

Python 3 PoC scanner and exploit for CVE-2026-92229, an unauthenticated arbitrary shortcode execution flaw in Forminator WordPress plugin versions 1.57.2 and below.

View Repository
1 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

CVE-2026-92229 — Forminator Unauthenticated Arbitrary Shortcode Execution

Python 3 PoC scanner/exploit for CVE-2026-92229 in Forminator (WPMU DEV).

Pluginforminator
Affected≤ 1.57.2
Fixed in1.57.3+
CVSS9.1 (Critical)
AuthUnauthenticated
VectorPOST parameter current_url (quiz AJAX)
CWECWE-94 (Code Injection)
CreditKuba (Wordfence)

Summary

In vulnerable versions, user-supplied current_url is reflected in quiz result HTML (e.g. social share attributes) and the response buffer is processed with WordPress do_shortcode(). An unauthenticated attacker can submit a quiz via admin-ajax.php with a malicious current_url embedding arbitrary shortcodes.

Primary AJAX actions:

  • forminator_submit_form_quizzes
  • forminator_submit_preview_form_quizzes (preview; --preview)

Fixed in 1.57.3 by limiting shortcode execution to intended text fields instead of the full HTML buffer.

Requirements

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

Usage

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

# Detect plugin, version, public Forminator modules (quiz answers when parseable)
python poc.py -u https://target.example --mode check

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

# Exploit (auto nonce + quiz answers when possible)
python poc.py -u https://target.example --mode exploit \
  --page-url /quiz/ --form-id 42 \
  --shortcode "PROBE"

# Preview submit (no stored entry, same code path)
python poc.py -u https://target.example --mode exploit --preview \
  --page-url /quiz/ --form-id 42

# Manual quiz answers if HTML parsing fails
python poc.py -u https://target.example --mode exploit \
  --form-id 42 --answers "2051:7608,2052:7610"

CLI options

OptionDescription
-u, --urlSingle target base URL
--listFile with one URL per line
--modecheck (default) or exploit
--page-urlPage path or URL containing the form
--form-idForminator module ID
--form-typequizzes, custom-forms, or poll
--answersQuiz answers as question_id:answer_id,...
--shortcodeShortcode payload (wrapped in [caption]…[/caption] inside current_url)
--previewUse preview AJAX action
--threads, -jMass scan concurrency (default 20)
--outputJSONL results (default cve_2026_92229_results.jsonl)
--vuln-listText file for check hits (default hits.txt)
--candidates-listJSONL metadata for exploitable checks (default candidates.jsonl)
--quietLess progress noise on mass runs

Output (mass check)

FileContent
cve_2026_92229_results.jsonlPer-target JSON (status, version, modules, …)
hits.txtBase URLs with exploitable_candidate: true
candidates.jsonlHit details: form_id, page_url, form_type

Common status values

StatusMeaning
candidateVulnerable version + quiz with parsed answers
form_no_quiz_answersForm found but quiz answers not auto-parsed
plugin_no_public_formPlugin present, no public module discovered
patchedVersion ≥ 1.57.3 (or newer major)
no_pluginForminator not detected

Limitations

  • Quiz modules match the vulnerable code path in ≤1.57.2; contact forms alone are not sufficient.
  • Check mode marks exploitable_candidate only when quiz answers[qid] can be parsed from HTML (many sites use JS-rendered quizzes → use --answers or manual exploit).
  • Shortcode impact depends on installed plugins/themes (probe with harmless shortcodes such as [caption]).

Repository layout

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

Local mass-scan lists (e.g. list.txt, FOFA exports, *.jsonl results) are listed 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