CVE-2025-57939
Executive Summary
CVE-2025-57939 is a Missing Authorization vulnerability affecting the Image Hover Effects – Elementor Addon WordPress plugin (versions <= 1.4.4). This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized data exposure or manipulation of plugin settings. The vulnerability is classified as a WordPress ecosystem issue, specifically within the plugin's permission checks for AJAX actions or REST endpoints. With a CVSS score of 5.3 (Medium), the risk is elevated due to the lack of required authentication and the plugin's widespread use in Elementor-based sites. No public exploit or patch is currently available, making proactive detection and mitigation critical.
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 Directory. The supply chain risk is moderate, as the plugin is not maintained via NPM, PyPI, Go, or Ruby registries. However, the lack of a patch increases the risk of supply chain compromise through malicious forks or unofficial updates.
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 direct data disclosure.
- 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 has limited impact. However, in a WordPress context, it could be chained with other flaws for privilege escalation.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the plugin's AJAX handlers or REST API endpoints. The plugin likely registers actions like wp_ajax_* or wp_ajax_nopriv_* without verifying user capabilities (e.g., edit_posts, manage_options). An unauthenticated attacker can send crafted HTTP requests to trigger these actions, potentially:
- Modifying plugin settings (e.g., hover effect configurations).
- Accessing non-public data (e.g., stored image metadata).
- Disabling or altering security features.
The affected file is likely image-hover-effects-addon-for-elementor.php or a related AJAX handler. The plugin uses add_action('wp_ajax_nopriv_...', ...) without a capability check, allowing unauthenticated access.
Vulnerable vs. Patched Code
Vulnerable Code (<= 1.4.4):
add_action('wp_ajax_nopriv_image_hover_save_settings', 'image_hover_save_settings');
function image_hover_save_settings() {
// No capability check
update_option('image_hover_settings', $_POST['settings']);
wp_die();
}
Patched Code (Hypothetical):
add_action('wp_ajax_image_hover_save_settings', 'image_hover_save_settings');
function image_hover_save_settings() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
update_option('image_hover_settings', $_POST['settings']);
wp_die();
}
The patch removes the nopriv prefix (disallowing unauthenticated access) and adds a capability check.
Exploitation & Lab Setup
Red Team
- Setup: Install WordPress with the vulnerable plugin (version 1.4.4) on a local server (e.g., XAMPP or Docker).
- Recon: Identify AJAX endpoints by scanning the plugin's JavaScript files or using Burp Suite.
- Exploit: Send a crafted POST request to
wp-admin/admin-ajax.phpwithaction=image_hover_save_settingsand malicious payload.curl -X POST http://target/wp-admin/admin-ajax.php \ -d "action=image_hover_save_settings&settings[malicious]=true" - Verify: Check if the option
image_hover_settingsis updated without authentication.
Blue Team
- Monitor: Watch for unusual AJAX requests to
admin-ajax.phpwithactionparameters related to the plugin (e.g.,image_hover_*). - Log Analysis: Review WordPress debug logs for unauthorized access attempts.
- Harden: Disable the plugin until a patch is available, or implement a Web Application Firewall (WAF) rule to block unauthenticated AJAX requests to plugin-specific actions.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=image_hover_*parameters from unauthenticated sources. - File: Unexpected modifications to the
wp_optionstable, specifically theimage_hover_settingsoption. - Log: WordPress debug.log entries showing
wp_ajax_nopriv_*calls without a valid nonce or capability. - Behavior: Plugin settings changed without admin interaction.
Detection Engineering
YARA Rule
rule CVE_2025_57939_WordPress_Plugin {
meta:
description = "Detects vulnerable Image Hover Effects plugin files"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-57939"
strings:
$vuln_func = "wp_ajax_nopriv_image_hover" nocase
$vuln_file = "image-hover-effects-addon-for-elementor.php" nocase
condition:
$vuln_func and $vuln_file
}
Sigma Rule
title: CVE-2025-57939 - Unauthenticated AJAX Access to Image Hover Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated POST requests to admin-ajax.php with plugin-specific actions
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=image_hover_
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: medium
Suricata Rule
alert http any any -> $EXTERNAL_NET any (
msg:"CVE-2025-57939 - Unauthenticated AJAX Access to Image Hover Plugin";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=image_hover_"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate: Disable the "Image Hover Effects – Elementor Addon" plugin until a patch is released.
- Workaround: Implement a WAF rule to block unauthenticated POST requests to
admin-ajax.phpcontainingaction=image_hover_*. - Patch: Monitor the WordPress Plugin Directory for an update. Apply version 1.4.5 or later when available.
- Hardening: Ensure WordPress user roles are properly configured, and disable file editing in
wp-config.php(define('DISALLOW_FILE_EDIT', true);). - Monitoring: Enable WordPress debug logging and review regularly for unauthorized AJAX calls.
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.