CVE-2024-3266
Executive Summary
CVE-2024-3266 is a Stored Cross-Site Scripting (XSS) vulnerability in the Bold Page Builder plugin for WordPress, affecting all versions up to and including 4.8.8. The flaw resides in insufficient input sanitization and output escaping on user-supplied URL attributes within widgets. An authenticated attacker with contributor-level access or higher can inject arbitrary web scripts that execute when any user visits a compromised page. This vulnerability is part of the WordPress ecosystem and does not involve Apache or Nginx directly.
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. No NPM, PyPI, Go, or Ruby packages are involved. Users should monitor the plugin’s update channel for a patched version.
CVSS Breakdown & Threat Level
- CVSS Score: 6.4 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (contributor-level)
- User Interaction: None
- Scope: Changed (impact on other components)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
The threat level is medium due to the requirement for authenticated access, but the potential for widespread script execution on a WordPress site elevates the risk.
Deep Dive & Mechanics
The vulnerability exists in the Bold Page Builder plugin’s handling of URL attributes in widgets. The plugin fails to properly sanitize user input and escape output when rendering these attributes. An attacker with contributor-level access can craft a widget with a malicious URL containing JavaScript payloads. When the page is saved and viewed by any user (including administrators), the script executes in the context of the victim’s browser.
The attack flow:
- Attacker logs in with contributor-level credentials.
- Attacker creates or edits a page using Bold Page Builder.
- Attacker adds a widget that accepts a URL attribute.
- Attacker injects a payload like
javascript:alert('XSS')or" onmouseover="alert(1). - The plugin stores the payload without proper sanitization.
- When the page is rendered, the payload executes.
Vulnerable vs. Patched Code
Vulnerable Code (<= 4.8.8):
// Example of insufficient sanitization
$url = $_POST['widget_url'];
echo '<a href="' . $url . '">Link</a>';
Patched Code (hypothetical):
// Proper sanitization and escaping
$url = esc_url_raw($_POST['widget_url']);
echo '<a href="' . esc_attr($url) . '">Link</a>';
The vulnerable code directly outputs user input without using WordPress’s esc_url() or esc_attr() functions, allowing script injection.
Exploitation & Lab Setup
Red Team
- Setup: Install WordPress with Bold Page Builder <= 4.8.8 on a local server.
- Create Contributor Account: Register a user with contributor role.
- Craft Payload: Use a payload like
javascript:alert(document.cookie)or" onfocus="alert(1)" autofocus. - Inject: Edit a page, add a widget, and insert the payload in the URL field.
- Trigger: Visit the page as an admin or other user to execute the script.
Example Payload:
<a href="javascript:alert('XSS')">Click me</a>
Blue Team
- Monitor Logs: Check WordPress audit logs for suspicious page edits by contributors.
- Scan Pages: Use a web application scanner to detect stored XSS in Bold Page Builder widgets.
- Review Code: Manually inspect widget URL attributes for unexpected JavaScript or event handlers.
- Restrict Roles: Limit contributor access to only trusted users.
Indicators of Compromise (IOCs)
- File Changes: Modified pages/posts containing
<a href="javascript:...">or similar patterns. - Database Entries: Rows in
wp_postswithpost_contentcontainingjavascript:oron*=attributes. - Network Traffic: Outbound requests to attacker-controlled domains from injected scripts.
- Logs: Unusual page edits by contributor-level users.
Detection Engineering
YARA Rule
rule CVE_2024_3266_Stored_XSS {
meta:
description = "Detects stored XSS payloads in Bold Page Builder URL attributes"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-3266"
strings:
$payload1 = /href\s*=\s*["']\s*javascript:/i
$payload2 = /on\w+\s*=\s*["']/i
$payload3 = /<script\b[^>]*>/i
condition:
any of them
}
Sigma Rule
title: CVE-2024-3266 Stored XSS in Bold Page Builder
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects stored XSS attempts via URL attributes in Bold Page Builder
author: Valters IT
logsource:
category: webserver
product: wordpress
detection:
selection:
http.url|contains:
- 'javascript:'
- 'onmouseover='
- 'onfocus='
http.method: 'POST'
http.body|contains: 'bold-page-builder'
condition: selection
falsepositives:
- Legitimate use of JavaScript URLs (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-3266 Stored XSS in Bold Page Builder"; flow:to_server,established; content:"POST"; http_method; content:"bold-page-builder"; http_uri; content:"javascript:"; http_client_body; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Bold Page Builder plugin until a patch is available.
- Short-term: Restrict contributor-level access to only trusted users.
- Long-term: Apply input sanitization using
esc_url()andesc_attr()in all widget URL attributes. - Monitor: Watch for plugin updates from the vendor.
- WAF: Deploy a Web Application Firewall rule to block
javascript:and event handler patterns in URL fields.
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.