CVE-2024-54267
Executive Summary
CVE-2024-54267 is a Missing Authorization vulnerability in the CM Answers WordPress plugin by CreativeMindsSolutions, affecting versions up to and including 3.2.6. This flaw allows an authenticated attacker (with low privileges) to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to sensitive data or functionality. The vulnerability has a CVSS score of 4.3 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept (PoC) or patch is currently available.
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 resides in a WordPress plugin distributed via the official WordPress plugin repository. Organizations using CM Answers should treat this as a supply chain risk, as the plugin may be bundled in managed WordPress environments or custom builds. No known malicious packages have been identified, but the lack of a patch increases the risk of supply chain compromise if the plugin is not properly isolated.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: Low (PR:L)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
Threat Level: Medium. The vulnerability requires authentication but allows low-privilege users to access unauthorized resources. While exploitation is not trivial, the lack of a patch makes it a persistent risk.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the CM Answers plugin's REST API endpoints or AJAX handlers. The plugin likely fails to verify that the current user has the required capabilities (e.g., edit_posts, manage_options) before executing sensitive operations. This allows authenticated users with minimal privileges (e.g., subscribers) to access or modify data intended for higher-privilege roles.
Root Cause: The plugin uses current_user_can() checks inconsistently or relies on nonce verification without capability validation. Attackers can craft requests to endpoints like /wp-json/cm-answers/v1/... or admin-ajax.php actions to bypass access controls.
Attack Scenario:
- An attacker registers as a subscriber on a WordPress site running CM Answers <= 3.2.6.
- The attacker sends a crafted HTTP request to a vulnerable endpoint (e.g., to list all answers, delete answers, or access private data).
- The server processes the request without verifying the user's role, exposing sensitive information or allowing unauthorized actions.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be in the plugin's main PHP files (e.g., cm-answers.php or includes/class-cm-answers-api.php). A typical vulnerable pattern:
Vulnerable Code (hypothetical):
add_action('wp_ajax_cm_answers_delete', 'cm_answers_delete_callback');
function cm_answers_delete_callback() {
// Missing capability check
$answer_id = intval($_POST['answer_id']);
wp_delete_post($answer_id, true);
wp_die();
}
Patched Code (hypothetical):
add_action('wp_ajax_cm_answers_delete', 'cm_answers_delete_callback');
function cm_answers_delete_callback() {
if (!current_user_can('edit_posts')) {
wp_die('Unauthorized', 403);
}
$answer_id = intval($_POST['answer_id']);
wp_delete_post($answer_id, true);
wp_die();
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- WordPress instance with CM Answers <= 3.2.6 installed and activated.
- Low-privilege user account (e.g., subscriber).
Exploitation Steps:
- Log in as a subscriber and obtain a valid nonce (if required) by inspecting the page source or using browser dev tools.
- Send a crafted POST request to
wp-admin/admin-ajax.phpwith actioncm_answers_get_all(example):curl -X POST http://target/wp-admin/admin-ajax.php \ -d "action=cm_answers_get_all&_ajax_nonce=VALID_NONCE" - If successful, the response will contain sensitive data (e.g., all answers, user emails).
Note: No public exploit code is available; this is a hypothetical scenario based on the CWE.
Blue Team
Detection & Response:
- Monitor for unusual AJAX requests from low-privilege users to
admin-ajax.phpwith CM Answers actions. - Enable logging of all REST API requests and audit for unauthorized access attempts.
- Use the detection rules below to identify exploitation attempts.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=cm_answers_*parameters from low-privilege user sessions. - Logs: WordPress debug log entries showing
current_user_can()failures or 403 errors on CM Answers endpoints. - File: Modified or unexpected plugin files in
/wp-content/plugins/cm-answers/(e.g., backdoored PHP files). - Behavior: Subscriber accounts accessing admin-only features or data.
Detection Engineering
YARA Rule
rule CVE_2024_54267_CM_Answers_Missing_Auth {
meta:
description = "Detects CM Answers plugin files with missing authorization checks"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-54267"
strings:
$func1 = "wp_ajax_cm_answers" ascii wide nocase
$func2 = "current_user_can" ascii wide nocase
$func3 = "wp_die" ascii wide nocase
condition:
$func1 and not ($func2 or $func3)
}
Sigma Rule
title: CVE-2024-54267 - CM Answers Missing Authorization Exploitation
id: 8a3f7c2e-5b1d-4a9f-8c6e-2d1a3b4c5d6e
status: experimental
description: Detects exploitation attempts of missing authorization in CM Answers plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=cm_answers_'
condition: selection
falsepositives:
- Legitimate admin actions
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-54267 - CM Answers Missing Authorization Exploit";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=cm_answers_"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin if not critical to operations until a patch is released.
- Restrict user roles – ensure only trusted users have subscriber-level access or higher.
- Apply virtual patching using a WAF (e.g., ModSecurity) to block requests to
admin-ajax.phpwithaction=cm_answers_*from non-admin users.
Long-Term Fix:
- Monitor the plugin's official page for updates. When a patched version (e.g., > 3.2.6) is released, update immediately.
- Consider replacing the plugin with an alternative that has active security maintenance.
Workaround:
- Add a custom code snippet to
functions.phpto enforce capability checks:add_action('wp_ajax_cm_answers_delete', function() { if (!current_user_can('edit_posts')) { wp_die('Unauthorized', 403); } }, 1);
Valters IT
DevSecOps & Cyber Threat Intelligence
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.