CVE-2025-30926
Executive Summary
CVE-2025-30926 is a Missing Authorization vulnerability in the King Addons for Elementor WordPress plugin, developed by KingAddons.com. This flaw affects all versions up to and including 24.12.58. The vulnerability allows an unauthenticated attacker to bypass authorization checks, potentially leading to unauthorized access to certain plugin functionalities. Given the plugin's integration with Elementor, a widely used page builder, the attack surface is significant. The CVSS score of 4.3 (Medium) reflects the low complexity and network-based attack vector, though the impact is limited to integrity compromise. No public proof-of-concept (PoC) or exploit code has been identified at this time, and the patch status remains unknown.
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 and third-party marketplaces. Organizations using King Addons for Elementor should treat this as a supply chain risk, as the plugin may be bundled in themes or managed through automated update systems. The lack of a confirmed patch means that users must rely on manual mitigation or temporary deactivation.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): None (N) – No denial-of-service impact.
Threat Level: Medium. The vulnerability is easy to exploit but offers limited direct impact. However, it could be chained with other flaws for more severe attacks.
Deep Dive & Mechanics
The vulnerability stems from a Missing Authorization check (CWE-862) in the King Addons for Elementor plugin. Specifically, certain AJAX actions or REST API endpoints within the plugin fail to verify that the requesting user has the necessary permissions (e.g., manage_options or edit_posts). This allows any unauthenticated visitor to trigger privileged operations.
The plugin likely registers WordPress AJAX hooks (e.g., wp_ajax_* and wp_ajax_nopriv_*) without proper capability checks. The nopriv hooks are intended for logged-out users, but they should still enforce some level of authorization for sensitive actions. In this case, the developer omitted the current_user_can() check, leaving the endpoint open.
Attack Scenario:
- An attacker identifies a vulnerable endpoint, e.g.,
admin-ajax.php?action=king_addons_save_settings. - The attacker sends a crafted POST request with malicious parameters.
- The plugin processes the request without verifying the user's role, leading to unauthorized changes (e.g., modifying plugin settings, injecting malicious content, or enabling debug modes).
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common fixes for missing authorization vulnerabilities.
Vulnerable Code (hypothetical):
add_action('wp_ajax_nopriv_king_addons_save_settings', 'king_addons_save_settings');
function king_addons_save_settings() {
// Process and save settings without authorization check
update_option('king_addons_settings', $_POST['settings']);
wp_die();
}
Patched Code (hypothetical):
add_action('wp_ajax_king_addons_save_settings', 'king_addons_save_settings');
// Remove the nopriv hook to require authentication
function king_addons_save_settings() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
// Process and save settings
update_option('king_addons_settings', $_POST['settings']);
wp_die();
}
The patch removes the wp_ajax_nopriv_* hook and adds a capability check using current_user_can('manage_options').
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress instance with King Addons for Elementor <= 24.12.58 installed and activated.
- Network access to the target.
Exploitation Steps:
- Identify the vulnerable endpoint by analyzing the plugin's AJAX actions. Common patterns include
king_addons_*inadmin-ajax.php. - Send a crafted request using
curl:curl -X POST http://target/wp-admin/admin-ajax.php \ -d "action=king_addons_save_settings&settings[debug_mode]=1" - Verify the change by checking if the plugin's debug mode is enabled (e.g., via a public-facing debug log).
Note: No public exploit code exists; this is a conceptual demonstration.
Blue Team (Defensive)
Detection:
- Monitor for unusual AJAX requests to
admin-ajax.phpwith actions containingking_addons_from unauthenticated users. - Look for HTTP 200 responses to
wp_ajax_nopriv_*actions that should require authentication.
Hunting:
- Search web server logs for patterns like:
POST /wp-admin/admin-ajax.php HTTP/1.1 action=king_addons_ - Correlate with IP addresses that are not associated with known admin sessions.
Indicators of Compromise (IOCs)
- Network:
- HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=king_addons_*parameters from unauthenticated sources. - Unusual
settingsparameters in POST data (e.g.,debug_mode,enable_remote_exec).
- HTTP POST requests to
- File System:
- Modified plugin options in the
wp_optionstable (e.g.,king_addons_settings). - Unexpected files in
/wp-content/uploads/or plugin directories.
- Modified plugin options in the
- Logs:
- Web server access logs showing repeated
admin-ajax.phprequests withking_addons_actions. - WordPress debug log entries indicating unauthorized access attempts.
- Web server access logs showing repeated
Detection Engineering
YARA Rule
rule CVE_2025_30926_King_Addons_Missing_Auth {
meta:
description = "Detects exploitation attempts for CVE-2025-30926 in King Addons for Elementor"
author = "Valters IT"
date = "2025-04-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-30926"
strings:
$ajax_action = "action=king_addons_" nocase
$nopriv = "wp_ajax_nopriv" nocase
$settings = "settings[" nocase
condition:
$ajax_action and ($nopriv or $settings)
}
Sigma Rule
title: CVE-2025-30926 - King Addons Missing Authorization Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated AJAX requests targeting King Addons for Elementor plugin
author: Valters IT
date: 2025-04-01
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'admin-ajax.php'
cs-uri-query|contains: 'action=king_addons_'
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-30926 - King Addons Missing Authorization Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=king_addons_"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Deactivate the plugin until an official patch is released.
- Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithaction=king_addons_*from unauthenticated users. - Monitor logs for exploitation attempts using the provided detection rules.
Long-term Fix:
- Apply the vendor's patch once available. If the vendor does not release a fix, consider forking the plugin and adding proper authorization checks (as shown in the patched code example).
- Replace the plugin with an alternative that offers similar functionality but is actively maintained.
Valters IT Signature:
Valters IT
Senior DevSecOps Engineer
Cyber Threat Intelligence Expert
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.