☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Merkulove logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N 🐛 CWE-862
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-66138

CVE-2025-66138 Missing Authorization in Merkulove
📅 PUBLISHED: 2026-01-22 17:16 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.05%
👁️
0.05% probability
1.1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-66138 is a Missing Authorization vulnerability in the Motionger for Elementor WordPress plugin, developed by Merkulove. This flaw allows an authenticated attacker with low privileges (e.g., subscriber) to exploit incorrectly configured access control security levels. The vulnerability affects all versions from n/a through 2.0.4. As of this report, no official patch has been released, and the vendor's patch status is marked as UNKNOWN/UNPATCHED.

The vulnerability is classified under CWE-862: Missing Authorization, meaning the plugin fails to properly enforce permission checks before allowing access to certain functions or data. This can lead to unauthorized data modification, privilege escalation, or information disclosure within the WordPress ecosystem. The CVSS v3.1 base score is 5.4 (Medium), with a vector indicating network-based, low-complexity attacks requiring low privileges and no user interaction.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability resides in a WordPress plugin distributed via the official WordPress plugin repository and potentially through third-party marketplaces. Since the plugin is unpatched, any site running version 2.0.4 or earlier is at risk. Organizations should treat this as a supply chain risk, as the plugin may be bundled in themes or other packages. No known public exploit code or proof-of-concept exists at this time, but the risk of weaponization remains.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low (L) – No special conditions or race conditions are required.
  • Privileges Required (PR): Low (L) – An attacker needs valid credentials (e.g., subscriber-level account).
  • User Interaction (UI): None (N) – No user action is required for exploitation.
  • Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
  • Confidentiality Impact (C): Low (L) – Limited unauthorized data access.
  • Integrity Impact (I): Low (L) – Limited unauthorized data modification.
  • Availability Impact (A): None (N) – No impact on system availability.

Threat Level: Medium. The low EPSS score (0.0%) suggests no active exploitation in the wild, but the lack of a patch increases long-term risk.

Deep Dive & Mechanics

The Motionger for Elementor plugin provides motion animation effects for Elementor page builder. The missing authorization vulnerability likely exists in one or more AJAX handlers or REST API endpoints that perform actions such as saving settings, importing/exporting configurations, or modifying user-specific data. Without proper capability checks (e.g., current_user_can('manage_options')), any authenticated user can invoke these functions.

Attack Scenario:

  1. An attacker registers or compromises a low-privileged WordPress account (e.g., subscriber).
  2. The attacker crafts a malicious HTTP request to a vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=motionger_save_settings).
  3. The plugin processes the request without verifying the user's role, allowing the attacker to modify plugin settings, inject malicious JavaScript, or exfiltrate data.

Root Cause: The plugin's code likely uses wp_ajax_nopriv_* hooks incorrectly or omits current_user_can() checks entirely.

Vulnerable vs. Patched Code

Since no patch is available, we can only hypothesize the vulnerable code pattern. A typical vulnerable AJAX handler in WordPress looks like:

// Vulnerable: No capability check
add_action('wp_ajax_motionger_save_settings', 'motionger_save_settings_callback');
function motionger_save_settings_callback() {
    // Process and save settings
    update_option('motionger_settings', $_POST['settings']);
    wp_die();
}

A patched version would include:

// Patched: Capability check added
add_action('wp_ajax_motionger_save_settings', 'motionger_save_settings_callback');
function motionger_save_settings_callback() {
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized', 403);
    }
    // Process and save settings
    update_option('motionger_settings', $_POST['settings']);
    wp_die();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A WordPress instance with Motionger for Elementor <= 2.0.4 installed and activated.
  • A low-privileged user account (e.g., subscriber).

Exploitation Steps:

  1. Log in as the low-privileged user and obtain a valid nonce (if required) by inspecting the plugin's AJAX calls.
  2. Send a crafted POST request to the vulnerable endpoint. Example using cURL:
curl -X POST 'http://target/wp-admin/admin-ajax.php' \
  -d 'action=motionger_save_settings&settings[malicious]=value&_wpnonce=VALID_NONCE' \
  --cookie 'wordpress_logged_in_xxx=session_cookie'
  1. Verify unauthorized changes (e.g., plugin settings modified, new admin user created if the endpoint allows user creation).

Note: No public exploit code is available; this is a conceptual demonstration.

Blue Team

Detection & Response:

  • Monitor for unusual AJAX requests to admin-ajax.php with actions containing "motionger" from low-privileged users.
  • Alert on changes to plugin options (motionger_settings) by non-admin users.
  • Use Web Application Firewall (WAF) rules to block requests to unknown or suspicious AJAX actions.

Honeypot: Deploy a fake endpoint mimicking the vulnerable action to detect scanning attempts.

Indicators of Compromise (IOCs)

  • File Hashes (SHA256): (None available – plugin files unchanged)
  • Network Indicators:
    • POST requests to /wp-admin/admin-ajax.php with action=motionger_* parameters from low-privileged user agents.
    • Unusual option_name values in database queries (e.g., motionger_settings containing base64-encoded payloads).
  • Log Entries:
    • WordPress debug log entries showing wp_ajax_motionger_* calls from unexpected user roles.
    • HTTP 200 responses to AJAX requests that should return 403 for unauthorized users.

Detection Engineering

YARA Rule

rule Detect_Motionger_Missing_Auth {
    meta:
        description = "Detects Motionger for Elementor plugin files with missing authorization checks"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-66138"
    strings:
        $ajax_hook = /add_action\s*\(\s*['\"]wp_ajax_motionger_/
        $no_cap = /current_user_can\s*\(/
        $func_def = /function motionger_/
    condition:
        $ajax_hook and not $no_cap and $func_def
}

Sigma Rule

title: Motionger for Elementor Missing Authorization Exploitation
id: 7b8c3d4e-5f6a-7b8c-9d0e-1f2a3b4c5d6e
status: experimental
description: Detects unauthorized AJAX requests to Motionger plugin endpoints
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|contains: 'action=motionger_'
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate admin actions (rare)
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-66138 Motionger for Elementor Missing Authorization Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"admin-ajax.php"; http_uri;
    content:"action=motionger_"; http_client_body;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until an official patch is released. If the plugin is critical, restrict access to its AJAX endpoints via .htaccess or a WAF.
  2. Audit user roles and remove any unnecessary low-privileged accounts.
  3. Monitor logs for suspicious AJAX activity.

Long-Term Fix:

  • The vendor must release a patched version (e.g., 2.0.5) that adds proper capability checks using current_user_can() or wp_verify_nonce().
  • Until then, consider replacing the plugin with an alternative that provides similar functionality.

Workaround (if plugin must remain active):

  • Add a custom function to your theme's functions.php to block unauthorized AJAX requests:
add_action('wp_ajax_motionger_save_settings', function() {
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized', 403);
    }
}, 0);

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

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.

http.title:"Motionger for Elementor"
http.html:"wp-content/plugins/motionger-elementor"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-66138/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.