CVE-2025-66136
Executive Summary
CVE-2025-66136 is a Missing Authorization vulnerability in the Merkulove Carter for Elementor WordPress plugin, affecting versions up to and including 1.0.2. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized data access or modification. The vulnerability is classified under CWE-862: Missing Authorization and has a CVSS score of 5.4 (Medium). As of this report, no official patch is available, and no public proof-of-concept (PoC) or exploit code has been released. The EPSS score is 0.0%, indicating a low probability of active exploitation in the wild.
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 potentially third-party marketplaces. Users are advised to verify the integrity of the plugin package and monitor for updates from the vendor. Since no patch is available, the supply chain risk is elevated, and users should consider disabling the plugin until a fix is released.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Base Score: 5.4 (Medium)
- Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No user action is required.
- Scope: Unchanged (S:U) – The impact is confined to the vulnerable component.
- Confidentiality Impact: Low (C:L) – Limited unauthorized data access.
- Integrity Impact: Low (I:L) – Limited unauthorized data modification.
- Availability Impact: None (A:N) – No impact on system availability.
Threat Level: Medium. The vulnerability is easy to exploit but has limited impact. However, the lack of a patch increases the risk for unmitigated installations.
Deep Dive & Mechanics
The vulnerability resides in the Carter for Elementor plugin, which provides custom widgets for the Elementor page builder. The plugin fails to properly enforce authorization checks on certain AJAX actions or REST API endpoints, allowing unauthenticated users to perform actions that should require administrative privileges.
Root Cause: The plugin uses wp_ajax_ and wp_ajax_nopriv_ hooks without verifying user capabilities. For example, a function like carter_save_settings() may be registered with both hooks, but the function itself does not check current_user_can('manage_options') or similar capability checks.
Attack Vector: An attacker can send crafted HTTP requests to the WordPress site, targeting the vulnerable endpoints. Since no authentication is required, the attacker can:
- Read sensitive plugin settings (e.g., API keys, configuration data).
- Modify plugin settings (e.g., change widget behavior, inject malicious content).
- Potentially escalate privileges if the plugin stores or processes user data.
Example vulnerable endpoint (hypothetical):
add_action('wp_ajax_carter_save_settings', 'carter_save_settings');
add_action('wp_ajax_nopriv_carter_save_settings', 'carter_save_settings');
function carter_save_settings() {
// No capability check
update_option('carter_settings', $_POST['settings']);
wp_send_json_success();
}
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on the vulnerability type.
Vulnerable Code (version <= 1.0.2):
// No capability check before processing
add_action('wp_ajax_carter_get_data', 'carter_get_data');
add_action('wp_ajax_nopriv_carter_get_data', 'carter_get_data');
function carter_get_data() {
$data = get_option('carter_sensitive_data');
wp_send_json($data);
}
Patched Code (hypothetical):
add_action('wp_ajax_carter_get_data', 'carter_get_data');
// Remove nopriv hook to require authentication
function carter_get_data() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
$data = get_option('carter_sensitive_data');
wp_send_json($data);
}
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- A WordPress site with Carter for Elementor version <= 1.0.2 installed and activated.
- Network access to the target site.
Exploitation Steps:
- Identify vulnerable endpoints by analyzing the plugin's JavaScript files (e.g.,
carter-admin.js) for AJAX actions. - Send a crafted request to the vulnerable endpoint:
curl -X POST http://target.com/wp-admin/admin-ajax.php \ -d "action=carter_get_data" - If the endpoint returns sensitive data, the exploit is successful.
Example for modifying settings:
curl -X POST http://target.com/wp-admin/admin-ajax.php \
-d "action=carter_save_settings&settings[malicious]=true"
Blue Team (Defense & Detection)
Detection:
- Monitor for unusual AJAX requests to
admin-ajax.phpwith actions prefixed bycarter_. - Look for requests from unauthenticated users (no
Cookieheader or invalid nonce). - Check for sudden changes to the
carter_settingsoption in the database.
Mitigation:
- Disable the plugin until a patch is released.
- Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithaction=carter_*from unauthenticated users. - Use a security plugin like Wordfence to add virtual patching.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=carter_*parameters. - Unusual
User-Agentstrings or repeated requests from the same IP.
- HTTP POST requests to
- File IOCs:
- Modified
carter_settingsoption in thewp_optionstable. - Unexpected files in the
/wp-content/plugins/carter-elementor/directory.
- Modified
- Log IOCs:
admin-ajax.phpentries in access logs withaction=carter_*and no authentication cookie.
Detection Engineering
YARA Rule
rule CVE_2025_66136_Carter_Elementor {
meta:
description = "Detects exploitation attempts for CVE-2025-66136 in Carter for Elementor"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-66136"
strings:
$ajax_action = "action=carter_" ascii wide nocase
$admin_ajax = "admin-ajax.php" ascii wide nocase
condition:
$ajax_action and $admin_ajax
}
Sigma Rule
title: CVE-2025-66136 - Missing Authorization in Carter for Elementor
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects unauthenticated AJAX requests targeting Carter for Elementor plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'admin-ajax.php'
cs-uri-query|contains: 'action=carter_'
condition: selection
falsepositives:
- Legitimate admin actions (requires authentication)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-66136 - Carter for Elementor Missing Authorization Exploit";
flow:to_server,established;
content:"POST"; http_method;
content:"admin-ajax.php"; http_uri;
content:"action=carter_"; http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
reference:cve,2025-66136;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin – Deactivate and uninstall Carter for Elementor until a patch is released.
- Implement virtual patching – Use a WAF to block unauthenticated requests to
admin-ajax.phpwithaction=carter_*. - Monitor logs – Check for any signs of exploitation using the IOCs and detection rules above.
Long-term Fix:
- The vendor (Merkulove) must release a patched version that adds proper capability checks (e.g.,
current_user_can('manage_options')) to all AJAX handlers. - Users should update to the latest version once available.
Workaround:
- If the plugin is critical, restrict access to
admin-ajax.phpvia.htaccessor server configuration:
(Note: This will break legitimate AJAX functionality for all plugins.)<Files "admin-ajax.php"> Require all denied </Files>
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.