Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-15748 — Scans WordPress Forminator for CVE-2026-15748 unauthenticated RCE. Detects vulnerable sites, crawls forms, extracts nonces, runs safe upload tests. | Kitploit
Strumenti/GitHubGitHub/yora1928/cve-2026-15748
Web Vulnerability ScannersExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingCrawler
GitHubyora1928/cve-2026-15748

cve-2026-15748

Scans WordPress Forminator for CVE-2026-15748 unauthenticated RCE. Detects vulnerable sites, crawls forms, extracts nonces, runs safe upload tests.

Vedi Repository
3166 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Contenuto non disponibile nella lingua richiesta. Visualizzazione della versione inglese.

CVE-2026-15748 — Forminator Security Scanner

A Python-based security research and vulnerability assessment scanner for identifying WordPress installations that use the Forminator plugin and assessing version-related exposure.

For Educational & Authorized Testing Only

Run this project only against systems that you own or have explicit permission to assess.

Overview

CVE-2026-15748 is a vulnerability associated with the Forminator plugin for WordPress.

This project provides a scanner for security research and authorized testing. It performs a sequence of passive and application-level checks to identify WordPress, locate Forminator, determine the installed version when possible, inspect relevant pages and forms, and report the resulting assessment.

The scanner is intended to help security researchers understand the exposure of authorized WordPress environments without treating a scanner result as absolute proof of exploitability.

What This Tool Does

The scanner follows this general workflow:

root@kitploit:~
Target
  |
  v
Normalize URL
  |
  v
Detect WordPress
  |
  +---- not detected ----> NOT WORDPRESS
  |
  v
Crawl relevant pages
  |
  v
Detect Forminator
  |
  v
Detect Forminator version
  |
  v
Compare version
  |
  v
Inspect forms
  |
  v
Generate result

Features

FeatureDescription
WordPress DetectionDetects whether the target appears to use WordPress.
Forminator DetectionSearches for indicators of the Forminator plugin.
Version DetectionAttempts to identify the installed Forminator version from available sources.
Version CheckCompares the detected version with the configured VULN_MAX value.
Website CrawlingCollects relevant pages and internal links for further inspection.
Sitemap DetectionChecks common WordPress sitemap locations.
Form DetectionLooks for relevant Forminator forms and form elements.
Nonce DetectionAttempts to identify a Forminator nonce in detected form data.
Multi-threadingSupports processing multiple targets concurrently.
Retry HandlingRetries failed requests according to the configured limit.
Request DelayAdds a configurable random delay between requests.
Detailed ResultsWrites collected assessment results to a detailed result file.

Requirements

  • Python 3
  • requests
  • packaging
  • urllib3

Install the required packages:

root@kitploit:~
pip install requests packaging urllib3

Or:

root@kitploit:~
python -m pip install requests packaging urllib3

Installation

Clone the repository:

root@kitploit:~
git clone https://github.com/yora1928/cve-2026-15748.git

Enter the project directory:

root@kitploit:~
cd cve-2026-15748

Install the dependencies:

root@kitploit:~
pip install requests packaging urllib3

Verify the Python installation:

root@kitploit:~
python --version

Configuration

The scanner configuration is defined directly in the source code:

root@kitploit:~
TIMEOUT = 15
THREADS = 8
VULN_MAX = "1.56.1"
MAX_RETRIES = 3
DELAY_MIN = 1.0
DELAY_MAX = 2.5
CRAWL_DEPTH = 2

Configuration Reference

VariableDefaultDescription
TIMEOUT15HTTP request timeout.
THREADS8Number of worker threads used for scanning.
VULN_MAX1.56.1Maximum version treated as affected by the scanner's version assessment.
MAX_RETRIES3Maximum number of retry attempts for failed requests.
DELAY_MIN1.0Minimum request delay.
DELAY_MAX2.5Maximum request delay.
CRAWL_DEPTH2Maximum crawling depth.

The values above describe the scanner's current source-code configuration.

Usage

The scanner accepts either a single target URL or a text file containing multiple target URLs.

1. Scan a Single Target

root@kitploit:~
python cve-2026-15748.py -u https://target.com

-u and --url specify one target URL.

Use this mode when performing an assessment against a single authorized environment.

2. Scan Multiple Targets

Create a file such as targets.txt:

root@kitploit:~
https://target1.example
https://target2.example
https://target3.example

Then run:

root@kitploit:~
python cve-2026-15748.py -f targets.txt

-f and --file specify the target list.

Each non-empty line is treated as a target.

3. Change the Number of Threads

The default configuration uses 8 threads.

For example:

root@kitploit:~
python cve-2026-15748.py -f targets.txt -t 10

Or:

root@kitploit:~
python cve-2026-15748.py -f targets.txt -t 5

-t changes the number of worker threads used by the scanner.

4. Upload Test Mode

The scanner also provides an optional --upload mode:

root@kitploit:~
python cve-2026-15748.py -u https://lab.example.com --upload

For multiple authorized targets:

root@kitploit:~
python cve-2026-15748.py -f authorized-targets.txt -t 5 --upload

This mode can perform a POST/upload request against a Forminator endpoint when the relevant conditions are met.

Only use --upload on systems where this testing is explicitly authorized.

Command Reference

CommandPurpose
-u, --urlScan a single target URL.
-f, --fileRead multiple targets from a file.
-tSet the number of scanning threads.
--uploadEnable the upload test mode for an authorized target.

Common Examples

Single target:

root@kitploit:~
python cve-2026-15748.py -u https://target.com

Multiple targets:

root@kitploit:~
python cve-2026-15748.py -f targets.txt

Multiple targets with custom concurrency:

root@kitploit:~
python cve-2026-15748.py -f targets.txt -t 10

Authorized lab upload test:

root@kitploit:~
python cve-2026-15748.py -u https://lab.example.com --upload

Detection Process

The scanner performs several stages during an assessment.

Stage 1 — URL Normalization

The target URL is normalized before requests are made so that subsequent checks use a consistent URL format.

Stage 2 — WordPress Detection

The scanner checks common WordPress indicators and endpoints, including:

root@kitploit:~
/wp-login.php
/wp-json
/xmlrpc.php
/wp-content

It also searches responses for indicators such as:

root@kitploit:~
wp-content
wp-includes

If WordPress cannot be identified, the scanner reports:

root@kitploit:~
[NOT WORDPRESS]

Stage 3 — Page Crawling

The scanner builds a list of pages from common paths, sitemap locations, and internal links discovered from the target.

Examples of paths checked include:

root@kitploit:~
/contact
/kontak
/hubungi-kami
/form
/forms
/formulir
/upload
/unggah
/submit
/kirim
/gallery
/kontribusi
/daftar
/pendaftaran
/registration
/register
/file-upload
/submit-document
/unggah-berkas
/upload-file

Common sitemap locations include:

root@kitploit:~
/sitemap.xml
/sitemap_index.xml
/wp-sitemap.xml

The crawler is limited by CRAWL_DEPTH.

Stage 4 — Forminator Detection

The scanner searches for Forminator identifiers such as:

root@kitploit:~
forminator-form-<ID>

For detected forms, it checks for relevant elements such as:

root@kitploit:~
type="file"

and:

root@kitploit:~
<select>

It also attempts to obtain:

root@kitploit:~
form_id
nonce

from the form HTML.

Stage 5 — Version Detection

The scanner attempts to determine the Forminator version from information exposed by the target.

One source is an asset path similar to:

root@kitploit:~
/wp-content/plugins/forminator/...

with a version parameter:

root@kitploit:~
?ver=X.X.X

The scanner also has a fallback that searches for:

root@kitploit:~
Stable tag:

in HTML or readme.txt.

The reported detection method can include:

root@kitploit:~
html-source

or:

root@kitploit:~
readme.txt

Stage 6 — Version Assessment

The configured assessment boundary is:

root@kitploit:~
1.56.1

The detected version is compared with VULN_MAX.

Possible assessment states include:

root@kitploit:~
VULNERABLE
PATCHED

If Forminator is detected but its version cannot be determined, the scanner can report:

root@kitploit:~
INSTALLED (unknown version)

A scanner classification should be treated as an assessment result, not absolute proof that the target is exploitable.

Output

The main output follows this general structure:

root@kitploit:~
[STATUS] URL VERSION (METHOD) [PAGES] [FORM STATUS] [VULNERABILITY STATUS] [UPLOAD STATUS]

Example:

root@kitploit:~
[FOUND] https://target.com v1.56.0 (html-source) [25 pages] [HAS UPLOAD FORM] [VULNERABLE]

When no upload form is detected:

root@kitploit:~
[FOUND] https://target.com v1.56.0 (html-source) [25 pages] [VULNERABLE]

Status Reference

FOUND

Forminator was detected and relevant information was successfully collected.

NOT FOUND

Forminator could not be detected.

Example:

root@kitploit:~
[NOT FOUND] https://target.com [17 pages]

NOT WORDPRESS

The target was not detected as a WordPress installation.

Example:

root@kitploit:~
[NOT WORDPRESS] https://target.com

INSTALLED (unknown version)

Forminator appears to be installed, but the scanner could not determine its version.

VULNERABLE

The detected version is at or below the configured boundary:

root@kitploit:~
1.56.1

PATCHED

The detected version is above the configured boundary:

root@kitploit:~
1.56.1

Summary

After scanning the targets, the tool displays a summary similar to:

root@kitploit:~
========== SUMMARY ==========
VULNERABLE      : 10
PATCHED         : 5
UNKNOWN VERSION : 3
NOT FOUND       : 20
NOT WORDPRESS   : 2
TOTAL SCANNED   : 40
[+] HAVE UPLOAD FORM: 2

The values represent the results collected during the current scan.

Result File

After scanning completes, the tool creates:

root@kitploit:~
scan_results_detailed.txt

The result file is organized into sections such as:

root@kitploit:~
=== VULNERABLE (with upload form) ===

=== VULNERABLE (no upload form) ===

=== UNKNOWN VERSION (assume vulnerable) ===

Example:

root@kitploit:~
=== VULNERABLE (with upload form) ===
https://target.example - v1.56.0 (html-source) - form_data: ...

=== VULNERABLE (no upload form) ===
https://target.example - v1.55.0 (html-source)

=== UNKNOWN VERSION (assume vulnerable) ===
https://target.example

Do not commit scan results to a public repository if they contain target information or other sensitive data.

Project Structure

root@kitploit:~
cve-2026-15748/
|
├── cve-2026-15748.py
├── README.md
├── targets.txt
└── scan_results_detailed.txt
FilePurpose
cve-2026-15748.pyMain scanner implementation.
README.mdProject documentation.
targets.txtList of targets to process.
scan_results_detailed.txtAutomatically generated scan results.

Source Code Structure

The source code is organized into several functional areas:

root@kitploit:~
cve-2026-15748.py
|
├── CONFIG
|   ├── TIMEOUT
|   ├── THREADS
|   ├── VULN_MAX
|   ├── MAX_RETRIES
|   ├── DELAY_MIN
|   ├── DELAY_MAX
|   └── CRAWL_DEPTH
|
├── HTTP / REQUEST
|   ├── get_headers()
|   └── safe_get()
|
├── URL
|   └── normalize()
|
├── VERSION
|   ├── is_vulnerable()
|   └── extract_version_from_html()
|
├── WORDPRESS
|   └── check_wordpress()
|
├── CRAWLING
|   └── get_all_pages()
|
├── FORM DETECTION
|   └── extract_form_data_advanced()
|
├── FORMINATOR
|   └── check_forminator_full()
|
├── TESTING
|   └── upload_test()
|
├── SCANNING
|   └── scan_target()
|
└── MAIN
    └── main()

HTTP Behavior

The scanner uses:

  • Random User-Agent values
  • HTTP request timeouts
  • Retry handling
  • Random request delays
  • Session-based requests
  • Redirect handling

The configured request behavior is:

root@kitploit:~
TIMEOUT      = 15 seconds
MAX_RETRIES  = 3
DELAY        = 1.0–2.5 seconds

Limitations

The scanner has several limitations:

  1. Version detection depends on information exposed by the target response.
  2. Some Forminator installations may not expose their version.
  3. UNKNOWN results require manual verification.
  4. Crawling does not guarantee that every page on a website will be discovered.
  5. Different HTML structures may prevent forms from being detected.
  6. HTTP status behavior can be affected by WAFs or server configuration.
  7. A scanner result is not absolute proof that a system can be exploited.

Mitigation

For WordPress administrators:

  1. Use a Forminator version that contains the relevant security fixes.
  2. Keep WordPress and installed plugins updated.
  3. Remove plugins that are no longer required.
  4. Monitor unusual upload activity.
  5. Review relevant server logs.
  6. Use a security plugin or WAF where appropriate.
  7. Perform security assessments periodically.

Responsible Use

Before running the scanner:

root@kitploit:~
[ ] Confirm that the system is in scope.
[ ] Confirm that you have permission to test it.
[ ] Prefer a testing or laboratory environment when possible.
[ ] Avoid using real user data during testing.
[ ] Do not test systems outside the authorized scope.
[ ] Store assessment results securely.

Security and Legal Notice

For Educational & Authorized Testing Only.

This project is intended for:

  • Educational security research
  • Vulnerability assessment
  • Authorized penetration testing
  • Local laboratory testing

Do not use the scanner against systems that you do not own or do not have explicit permission to test.

The user is responsible for the way this tool is used. The author is not responsible for damage, data loss, service disruption, or legal consequences resulting from misuse.

Author

Yora

GitHub:
https://github.com/yora1928

Repository:
https://github.com/yora1928/cve-2026-15748

Support

If this project is useful for legitimate educational or security research, you can support the repository by giving it a star.

License

MIT License

Scarica lo strumento