CVE-2025-8446
Executive Summary
CVE-2025-8446 is a Missing Authorization vulnerability in the Blaze Demo Importer WordPress plugin (versions up to and including 1.0.12). The plugin fails to perform a capability check on the blaze_demo_importer_install_plugin function, allowing authenticated attackers with Subscriber-level access or higher to install and activate a limited set of specific plugins. The exploitation requires the News Kit Elementor Addons plugin and a BlazeThemes theme to be installed and active. This vulnerability is classified as a WordPress ecosystem issue and does not affect Apache or Nginx directly.
The CVSS score is 4.3 (Medium), with a low EPSS probability (0.0%). No public proof-of-concept (PoC) or exploit code is currently available. The vendor has not released a patch, and the vulnerability remains unpatched.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is specific to the WordPress plugin ecosystem. The Blaze Demo Importer plugin is distributed via the WordPress plugin repository and potentially through third-party marketplaces. Users should verify the integrity of the plugin package and ensure it is obtained from trusted sources. No known supply chain attacks have been reported for this plugin.
CVSS Breakdown & Threat Level
- CVSS Score: 4.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Subscriber-level)
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: None
- Integrity Impact: Low (limited plugin install/activation)
- Availability Impact: None
Threat Level: Medium. The vulnerability allows limited unauthorized plugin installation, which could be leveraged to introduce malicious plugins or escalate privileges if combined with other vulnerabilities.
Deep Dive & Mechanics
The vulnerability resides in the blaze_demo_importer_install_plugin function within the Blaze Demo Importer plugin. This function is intended to install and activate plugins required for demo import functionality. However, it lacks a proper capability check (e.g., current_user_can('install_plugins')), allowing any authenticated user, including Subscribers, to trigger the function via an AJAX action or direct call.
Prerequisites for Exploitation:
- The News Kit Elementor Addons plugin must be installed and activated.
- A BlazeThemes theme must be installed and activated.
- The attacker must have a valid WordPress user account with at least Subscriber-level privileges.
Exploitation Flow:
- The attacker authenticates to the WordPress site.
- The attacker sends a crafted request to the vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.php?action=blaze_demo_importer_install_plugin&plugin=malicious-plugin-slug). - The plugin installs and activates the specified plugin (limited to a predefined list, but could include plugins with known vulnerabilities).
Impact: An attacker could install plugins that introduce backdoors, execute arbitrary code, or escalate privileges. The limited scope reduces the immediate risk, but combined with other vulnerabilities, it could lead to full site compromise.
Vulnerable vs. Patched Code
Vulnerable Code (version <= 1.0.12):
function blaze_demo_importer_install_plugin() {
// No capability check
$plugin_slug = sanitize_text_field($_POST['plugin']);
// Install and activate plugin logic...
}
Patched Code (hypothetical):
function blaze_demo_importer_install_plugin() {
// Add capability check
if (!current_user_can('install_plugins')) {
wp_die('Unauthorized');
}
$plugin_slug = sanitize_text_field($_POST['plugin']);
// Install and activate plugin logic...
}
The patch adds a current_user_can('install_plugins') check to ensure only users with the appropriate capability (typically Administrators) can install plugins.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress site with Blaze Demo Importer <= 1.0.12 installed.
- News Kit Elementor Addons plugin and a BlazeThemes theme active.
- Valid Subscriber account credentials.
Exploitation Steps:
- Log in as a Subscriber.
- Send a POST request to
/wp-admin/admin-ajax.phpwith the following parameters:action:blaze_demo_importer_install_pluginplugin:malicious-plugin-slug(must be in the allowed list)
- The plugin will be installed and activated.
Example cURL Command:
curl -X POST https://target-site.com/wp-admin/admin-ajax.php \
-d "action=blaze_demo_importer_install_plugin&plugin=malicious-plugin-slug" \
-c cookies.txt
Note: No public exploit code is available. The above is a conceptual demonstration.
Blue Team (Detection & Prevention)
Detection:
- Monitor for AJAX requests to
admin-ajax.phpwithaction=blaze_demo_importer_install_pluginfrom non-admin users. - Log all plugin installation events and alert on installations by Subscriber-level users.
Prevention:
- Apply the principle of least privilege; ensure Subscribers cannot access admin AJAX actions.
- Use a Web Application Firewall (WAF) to block requests to the vulnerable endpoint from low-privilege users.
- Disable the Blaze Demo Importer plugin if not required.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/blaze-demo-importer/blaze-demo-importer.php(vulnerable file) - Log Entry: AJAX request with
action=blaze_demo_importer_install_pluginfrom a user with rolesubscriber. - Network: POST requests to
/wp-admin/admin-ajax.phpwithpluginparameter. - Plugin Installation: Unexpected installation of plugins (e.g.,
malicious-plugin-slug) by non-admin users.
Detection Engineering
YARA Rule
rule CVE_2025_8446_Blaze_Demo_Importer {
meta:
description = "Detects vulnerable Blaze Demo Importer plugin files"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-8446"
strings:
$func = "blaze_demo_importer_install_plugin"
$no_check = "current_user_can" nocase
condition:
$func and not $no_check
}
Sigma Rule
title: CVE-2025-8446 - Blaze Demo Importer Unauthorized Plugin Install
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects exploitation attempts of CVE-2025-8446 via AJAX requests
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'action=blaze_demo_importer_install_plugin'
condition: selection
falsepositives:
- Legitimate admin usage (rare)
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-8446 - Blaze Demo Importer Unauthorized Plugin Install";
flow:to_server,established;
content:"POST"; http_method;
content:"admin-ajax.php"; http_uri;
content:"action=blaze_demo_importer_install_plugin"; http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the Blaze Demo Importer plugin if not essential.
- Restrict user roles – ensure Subscribers cannot access admin AJAX endpoints.
- Monitor logs for unauthorized plugin installation attempts.
Long-term Fix:
- Apply a patch from the vendor (once available) that adds a capability check.
- Alternatively, manually patch the plugin by adding
if (!current_user_can('install_plugins')) { wp_die('Unauthorized'); }to the vulnerable function.
Workaround:
- Use a security plugin (e.g., Wordfence) to block AJAX requests from low-privilege users.
- Implement a custom function in the theme's
functions.phpto restrict the vulnerable endpoint.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.