Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
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.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-85097 — Detection, verification and incident-response toolkit for CVE-2026-85097: remote Bricksforge assessment, log IOC hunting, filesystem implant audit, plus Sigma and WAF rules. | Kitploit
Tools/GitHubGitHub/masriyan/cve-2026-85097
Defensive ToolsIndicator of Compromise (IOC) ManagementVulnerability ScannersWeb Vulnerability ScannersExploitationWeb SecurityDigital ForensicsPenetration TestingIncident ResponseLog Analysis
GitHub
122 days 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 →
masriyan/cve-2026-85097

CVE-2026-85097

Detection, verification and incident-response toolkit for CVE-2026-85097: remote Bricksforge assessment, log IOC hunting, filesystem implant audit, plus Sigma and WAF rules.

View Repository
Share

BricksforgeChecker: CVE-2026-85097

Unauthenticated Arbitrary File Upload → RCE in the Bricksforge WordPress plugin

Detection, verification and incident-response toolkit for CVE-2026-85097, a CVSS 10.0 unauthenticated arbitrary file upload in the Bricksforge plugin for WordPress that is actively exploited in the wild.

One script, three modes: remotely assess a target, hunt historical logs for exploitation, and audit a web root for dropped implants.

 ____       _ _    _    __                  ___      _    _
| __ ) _ __(_) | _| | __/ _| ___  _ __ __ _ / _ \ ___| | _| | ___  _ __
|  _ \| '__| | |/ / |/ / |_ / _ \| '__/ _` | | | / __| |/ / |/ _ \| '_ \
| |_) | |  | |   <|   <|  _| (_) | | | (_| | |_| \__ \   <| | (_) | | | |
|____/|_|  |_|_|\_\_|\_\_|  \___/|_|  \__, |\___/|___/_|\_\_|\___/|_| |_|
                                      |___/
   CVE-2026-85097  |  Unauthenticated Arbitrary File Upload -> RCE
   CVSS 10.0 CRITICAL  |  Bricksforge <= 3.1.8.9  |  Fixed 3.1.8.10

Advisory at a glance

FieldValue
CVECVE-2026-85097
ProductBricksforge (WordPress plugin, addon for Bricks Builder)
TypeUnauthenticated Arbitrary File Upload → Remote Code Execution
CWECWE-434: Unrestricted Upload of File with Dangerous Type
CVSS10.0 CRITICAL: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H (vector inferred, see Limitations)
AuthenticationNone
Affected<= 3.1.8.9
Fixed3.1.8.10 (vendor release line referenced in press: 4.0.1)
ExploitationACTIVE IN THE WILD
First observed2026-10-07 21:47:17 UTC
Installations~6,000
Source IPs observed63 unique (top 6 ≈ 46% of requests)
Primary endpointPOST /wp-json/bricksforge/v1/form_submit
Fallback endpointPOST /wp-admin/admin-ajax.php (action=bricksforge_form_submit)
Implant naminglogin_admin_*.php

[!CAUTION] Authorized use only. This tool is for permitted security assessment, defensive validation and incident response. Running any active test against a system you do not own or have written permission to test is illegal in most jurisdictions. See SAFETY-AND-LEGAL.md.


Contents

  • Why this CVE matters
  • How the vulnerability works
  • Installation
  • Quick start
  • The three modes
    • scan: remote assessment
    • hunt: offline log IOC hunting
    • audit: filesystem post-compromise audit
  • Detection content (Sigma + ModSecurity)
  • Reports and output formats
  • Verdict tiers and exit codes
  • Safety model of the active PoC
  • Testing against a local mock target
  • Validation results
  • Campaign intelligence
  • Remediation
  • Limitations
  • Project layout
  • References
  • Credits and license

Why this CVE matters

Bricksforge extends Bricks Builder with advanced forms, animations and dynamic data. Its Pro Forms feature accepts file uploads. The plugin correctly validates the MIME type of a file when it is first uploaded, but when the form is later submitted, it trusts the file metadata the client sends, and never validates the url field inside the temporaryFileUploads parameter.

That single missing check converts a benign image upload into unauthenticated remote code execution. An attacker needs no account, no CSRF token they cannot mint themselves, and no user interaction. Patchstack observed exploitation beginning 2026-10-07 21:47:17 UTC from 63 unique source IPs spanning datacenter, cloud, VPN and residential infrastructure.


How the vulnerability works

Root cause

file (the server-side path that was MIME-checked) and url (the destination the plugin will write to) are decoupled. The plugin re-reads the client-supplied url at submission time and writes the staged bytes there.

{
  "temporaryFileUploads": [
    {
      "field": "form-field-file",
      "file": {
        "file": "/var/www/example.com/wp-content/uploads/bricksforge/tmp/img_example.gif",
        "url":  "https://example.com/wp-content/uploads/bricksforge/tmp/img_example.php",
        "type": "image/gif"
      }
    }
  ]
}

The signature is the mismatch: the server-side path is a .gif, the destination URL is a .php. In 95% of captured requests the server-side path ended in .gif or .png.

Implicated source files

FileRole
wp-content/plugins/bricksforge/includes/elements/pro-forms/actions/init.phpInjection point: client-supplied metadata (including url) is merged into the form-action context without validation.
wp-content/plugins/bricksforge/includes/elements/pro-forms/actions/base.phpSink: the trusted metadata drives the final file write, so the attacker controls the on-disk destination filename and extension.

Attack chain

#StepObservable
1Obtain an unauthenticated nonce: POST /wp-admin/admin-ajax.php with action=bricksforge_regenerate_nonce. No auth required; returns a valid nonce.admin-ajax.php request with action=bricksforge_regenerate_nonce
2Upload a GIF/PHP polyglot: a valid image that also carries PHP code. MIME validation is performed here, so it passes and lands in wp-content/uploads/bricksforge/tmp/.Multipart upload writing into /wp-content/uploads/bricksforge/tmp/
3Submit the form with mismatched metadata: file points at the validated .gif, url ends in .php.form_submit request containing temporaryFileUploads
4Plugin writes the contents to the PHP location → RCE. Requesting that URL executes the embedded code: web shells, content modification, data theft, persistence.HTTP GET to a newly created .php file under an uploads directory

Payload variations observed

Attackers actively probe for ways around extension filtering. Four families:

FamilySamplesIntent
Alternative PHP extensions.php .php5 .php7 .php8 .phtml .pht .phtm .phpsReach a PHP handler under a name the filter does not block
Case manipulation.PHP .Php .pHp .PHTMLDefeat case-sensitive blacklists; Windows/some Apache configs resolve case-insensitively
Encoded extensions%2ephp .%70hp .%2570%2568%2570Smuggle the extension past a filter inspected before URL-decode
Modified metadataaltered/missing path, name, originalFilename, urlMap which fields the plugin actually validates

This tool detects all 18 variants of the first three families (see Validation results).


Installation

Requires Python 3.9+. Only two dependencies, both common.

git clone https://github.com/Masriyan/CVE-2026-85097.git
cd CVE-2026-85097

python3 -m venv .venv && source .venv/bin/activate   # optional but recommended
pip install -r requirements.txt

chmod +x bricksforge_checker.py
./bricksforge_checker.py --version

rich is optional, without it the tool falls back to plain ANSI output and still runs on a bare host.

Verify the detection primitives before trusting a run:

Download Tool