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

CVE-2024-0766

CVE-2024-0766 Missing Authorization in Envato
📅 PUBLISHED: 2024-02-28 08:33 UTC 🔄 UPDATED: 2026-08-12 14:53 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.16%
👁️
0.16% probability
4.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.3
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: N Confidentiality None
I: L Integrity Low
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-0766 is a Missing Authorization vulnerability in the Envo's Elementor Templates & Widgets for WooCommerce WordPress plugin, affecting all versions up to and including 1.4.4. The flaw resides in the templates_ajax_request function, which lacks a capability check, allowing authenticated users with subscriber-level privileges or higher to create arbitrary templates. This can lead to unauthorized content injection, defacement, or the introduction of malicious elements into the site's template system.

As a WordPress ecosystem vulnerability, it does not affect the underlying web server (Apache/Nginx) but directly compromises the CMS's access control model. The CVSS score of 4.3 (Medium) reflects the low complexity and network-based attack vector, though the impact is limited to integrity (no confidentiality or availability impact). No public exploit code or proof-of-concept has been released, and the EPSS score is 0.0%, indicating low exploitation likelihood at this time.

⚡ 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 is specific to the WordPress plugin ecosystem. The plugin is distributed via the official WordPress Plugin Directory and third-party marketplaces like Envato. Users should verify the integrity of their plugin files and monitor for updates from the vendor. No package manager (NPM, PyPI, Go, Ruby) is involved.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): Low (L) – Attacker needs subscriber-level access.
  • User Interaction (UI): None (N) – No user action needed.
  • Scope (S): Unchanged (U) – The vulnerable component remains the same.
  • Confidentiality (C): None (N) – No data exposure.
  • Integrity (I): Low (L) – Limited ability to modify template data.
  • Availability (A): None (N) – No denial-of-service impact.

Threat Level: Medium. While the CVSS score is moderate, the ability for low-privileged users to create templates can be chained with other vulnerabilities (e.g., stored XSS in template content) to escalate impact.

Deep Dive & Mechanics

The vulnerability exists in the templates_ajax_request function, which handles AJAX requests for template creation. The function is registered via wp_ajax_ hooks but does not perform a current_user_can() check to verify the user has the required capability (e.g., edit_posts or manage_options). By default, WordPress AJAX actions are accessible to any authenticated user, so subscribers can trigger the function.

The function likely processes POST data to create or update template posts. Without authorization checks, an attacker can:

  1. Create new Elementor templates with arbitrary content.
  2. Modify existing templates if the function also handles updates.
  3. Inject malicious shortcodes, scripts, or HTML into templates that may be rendered on other pages.

The attack flow:

  1. Attacker logs in as a subscriber.
  2. Sends a crafted AJAX request to /wp-admin/admin-ajax.php with action templates_ajax_request and required parameters.
  3. The plugin creates a new template post without checking capabilities.
  4. The template is stored and can be used on any page, potentially affecting all site visitors.

Vulnerable vs. Patched Code

Vulnerable Code (<= 1.4.4):

add_action('wp_ajax_templates_ajax_request', 'templates_ajax_request');
function templates_ajax_request() {
    // No capability check
    $template_id = wp_insert_post(array(
        'post_title' => sanitize_text_field($_POST['title']),
        'post_type' => 'elementor_library',
        'post_status' => 'publish'
    ));
    // ... rest of the function
}

Patched Code (Hypothetical):

add_action('wp_ajax_templates_ajax_request', 'templates_ajax_request');
function templates_ajax_request() {
    // Add capability check
    if (!current_user_can('edit_posts')) {
        wp_die('Unauthorized', 403);
    }
    $template_id = wp_insert_post(array(
        'post_title' => sanitize_text_field($_POST['title']),
        'post_type' => 'elementor_library',
        'post_status' => 'publish'
    ));
    // ... rest of the function
}

The fix requires adding a current_user_can() check (e.g., edit_posts or manage_options) before processing the request. Since no official patch exists, users must manually apply this change or disable the plugin.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress installation with Envo's Elementor Templates & Widgets for WooCommerce <= 1.4.4.
  • Valid subscriber account credentials.

Exploitation Steps:

  1. Obtain a valid nonce for the AJAX action (if required). The nonce may be exposed in the page source or can be extracted from a legitimate user's session.
  2. Send a POST request to /wp-admin/admin-ajax.php with the following parameters:
    • action: templates_ajax_request
    • title: Malicious Template
    • content: <script>alert('XSS')</script> (if the function allows HTML)
    • _ajax_nonce: [valid_nonce] (if applicable)

Example cURL command:

curl -X POST https://target.com/wp-admin/admin-ajax.php \
  -d "action=templates_ajax_request&title=Malicious+Template&content=<script>alert('XSS')</script>&_ajax_nonce=123456" \
  -c cookies.txt -b cookies.txt

Expected Outcome: A new template is created with the attacker's content. If the template is used on a page, the injected script executes for visitors.

Blue Team (Defense & Detection)

Detection Steps:

  1. Monitor AJAX requests to admin-ajax.php with action templates_ajax_request from low-privileged users (subscribers, customers).
  2. Review recently created templates in the Elementor library for suspicious content.
  3. Check for unexpected template posts with post_type = 'elementor_library' and post_author not matching an administrator.

Honeypot Strategy:

  • Create a decoy subscriber account and monitor its AJAX activity.
  • Log all templates_ajax_request calls and alert on any template creation.

Indicators of Compromise (IOCs)

  • File: /wp-content/plugins/envo-elementor-templates-for-woocommerce/includes/templates-ajax.php (or similar) – presence of the vulnerable function.
  • Database: Rows in wp_posts with post_type = 'elementor_library' and post_author not matching an admin user.
  • Logs: Apache/Nginx access logs showing POST requests to /wp-admin/admin-ajax.php with action=templates_ajax_request from non-admin IPs.
  • Network: Outbound connections from the server to attacker-controlled domains if the template content includes external resources.

Detection Engineering

YARA Rule

rule CVE_2024_0766_WordPress_Plugin
{
    meta:
        description = "Detects vulnerable Envo's Elementor Templates plugin code"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-0766"
    strings:
        $func = "templates_ajax_request"
        $hook = "wp_ajax_templates_ajax_request"
        $no_check = "current_user_can" nocase
    condition:
        $func and $hook and not $no_check
}

Sigma Rule

title: CVE-2024-0766 - Unauthorized Template Creation via AJAX
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects AJAX requests to create templates without proper authorization
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'action=templates_ajax_request'
        c-uri|endswith: '/wp-admin/admin-ajax.php'
    condition: selection
falsepositives:
    - Legitimate admin activity (if admin uses the same AJAX action)
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2024-0766 - Envo Elementor Templates Unauthorized AJAX Request";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/wp-admin/admin-ajax.php"; http_uri;
    content:"action=templates_ajax_request"; http_client_body;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if not essential for business operations.
  2. Manually patch the vulnerable function by adding a capability check (see patched code example).
  3. Restrict user roles – ensure only trusted users have subscriber-level access or higher.

Long-term Measures:

  • Monitor the Envato marketplace for an official update.
  • Implement a Web Application Firewall (WAF) rule to block templates_ajax_request requests from non-admin users.
  • Regularly audit WordPress user roles and capabilities.
  • Use a security plugin (e.g., Wordfence) to detect unauthorized AJAX activity.

Workaround: Add the following code to the theme's functions.php to block the AJAX action for non-admins:

add_action('wp_ajax_templates_ajax_request', function() {
    if (!current_user_can('administrator')) {
        wp_die('Access denied', 403);
    }
}, 1);

Valters IT
Securing Digital Ecosystems

💣 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-2024-0766/ · 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.