CVE-2024-11135
Executive Summary
CVE-2024-11135 is a critical unauthenticated SQL Injection vulnerability discovered in the Eventer WordPress plugin, affecting all versions up to and including 3.9.8. The flaw resides in the eventer_get_attendees function, where the event parameter is insufficiently sanitized and not properly prepared for SQL queries. This allows unauthenticated attackers to inject arbitrary SQL commands, potentially extracting sensitive data from the WordPress database, such as user credentials, session tokens, and other confidential information. The vulnerability has a CVSS score of 7.5 (High) and is currently unpatched, posing a significant risk to all sites using the affected plugin.
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 is specific to the WordPress plugin ecosystem. The Eventer plugin is distributed through the official WordPress plugin repository and third-party marketplaces. Since no official patch has been released, the supply chain risk is elevated. Site administrators must treat this as a zero-day threat and consider removing or disabling the plugin until a fix is available. No known open-source patches or GitHub advisories exist at this time.
CVSS Breakdown & Threat Level
- CVSS Score: 7.5 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: None
- Availability Impact: None
The vulnerability allows unauthenticated remote attackers to extract sensitive information from the database without any user interaction. The high confidentiality impact makes this a critical threat for data breaches.
Deep Dive & Mechanics
The vulnerability exists in the eventer_get_attendees function, which is typically called via AJAX or REST endpoints. The event parameter is directly concatenated into an SQL query without proper escaping or parameterized preparation. An attacker can inject SQL commands by crafting a malicious event value.
Root Cause:
- Insufficient input sanitization on the
eventparameter. - Lack of prepared statements or parameterized queries in the
eventer_get_attendeesfunction.
Attack Flow:
- An unauthenticated attacker sends a crafted HTTP request to the vulnerable endpoint.
- The
eventparameter is passed directly into the SQL query. - The injected SQL executes, allowing the attacker to extract data from the database.
Example vulnerable SQL query (pseudocode):
SELECT * FROM wp_eventer_attendees WHERE event_id = '{$_GET['event']}'
An attacker could inject:
1' UNION SELECT user_login, user_pass FROM wp_users --
Vulnerable vs. Patched Code
Since no official patch is available, the following shows the vulnerable code pattern and a recommended fix.
Vulnerable Code (eventer.php or similar):
function eventer_get_attendees() {
global $wpdb;
$event_id = $_GET['event'];
$results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}eventer_attendees WHERE event_id = '$event_id'");
return $results;
}
Patched Code (recommended):
function eventer_get_attendees() {
global $wpdb;
$event_id = intval($_GET['event']); // Cast to integer
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->prefix}eventer_attendees WHERE event_id = %d", $event_id));
return $results;
}
The patched version uses intval() to ensure the input is an integer and $wpdb->prepare() to parameterize the query, preventing SQL injection.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with Eventer plugin version <= 3.9.8.
- The vulnerable endpoint is typically
/wp-admin/admin-ajax.php?action=eventer_get_attendees&event=INJECTION.
Exploit Steps:
- Identify the vulnerable endpoint.
- Craft a payload to extract data.
Proof-of-Concept (PoC) using curl:
curl -X GET "http://target.com/wp-admin/admin-ajax.php?action=eventer_get_attendees&event=1' UNION SELECT user_login,user_pass,user_email FROM wp_users-- -"
Expected Output:
The response will contain the extracted user credentials (hashed passwords) from the wp_users table.
Advanced Exploitation:
- Use time-based blind SQL injection to extract data when UNION is blocked.
- Use
LOAD_FILE()to read server files if the database user has FILE privileges.
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual SQL error messages in logs.
- Look for requests to
admin-ajax.phpwithaction=eventer_get_attendeesand suspiciouseventparameters containing SQL keywords (UNION, SELECT, etc.).
Defense:
- Immediately disable or remove the Eventer plugin.
- Implement a Web Application Firewall (WAF) rule to block SQL injection patterns.
- Apply virtual patching via WAF or reverse proxy.
WAF Rule Example (ModSecurity):
SecRule ARGS:event "@rx (union|select|insert|drop|--)" "id:1001,phase:2,deny,status:403,msg:'SQL Injection Attempt Blocked'"
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/wp-admin/admin-ajax.phpwithaction=eventer_get_attendeesandeventparameter containing SQL keywords. - Unusual SQL error messages in server logs (e.g., "You have an error in your SQL syntax").
- HTTP requests to
File IOCs:
- Modified or new files in
/wp-content/plugins/eventer/(if attacker uploads webshells). - Suspicious entries in WordPress
wp_optionstable (e.g., malicious admin users).
- Modified or new files in
Database IOCs:
- Unauthorized queries to
wp_users,wp_usermeta, or other sensitive tables. - New user accounts with administrative privileges.
- Unauthorized queries to
Detection Engineering
YARA Rule
rule CVE_2024_11135_Eventer_SQLi {
meta:
description = "Detects SQL injection attempts targeting Eventer plugin CVE-2024-11135"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-11135"
strings:
$sqli1 = "union select" nocase
$sqli2 = "union all select" nocase
$sqli3 = "information_schema" nocase
$sqli4 = "wp_users" nocase
$sqli5 = "admin-ajax.php" nocase
$sqli6 = "eventer_get_attendees" nocase
condition:
all of ($sqli5, $sqli6) and 1 of ($sqli1, $sqli2, $sqli3, $sqli4)
}
Sigma Rule
title: CVE-2024-11135 Eventer SQL Injection Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SQL injection attempts against the Eventer WordPress plugin
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-11135
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-uri-query|contains:
- "action=eventer_get_attendees"
- "event="
keywords:
- "union"
- "select"
- "information_schema"
- "wp_users"
condition: selection and keywords
falsepositives:
- Legitimate use of the word "union" in event names (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-11135 Eventer SQL Injection Attempt"; flow:to_server,established; content:"admin-ajax.php"; http_uri; content:"action=eventer_get_attendees"; http_uri; content:"event="; http_uri; pcre:"/(union|select|information_schema|wp_users)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Eventer plugin until an official patch is released.
- Implement virtual patching via WAF to block SQL injection patterns.
- Review server logs for signs of exploitation (unusual SQL errors, suspicious requests).
Long-term Fix:
- The vendor must release a patched version that uses prepared statements and input validation.
- If no patch is forthcoming, consider migrating to an alternative event management plugin.
Compromise Assessment:
- Check for unauthorized database queries or data exfiltration.
- Audit user accounts for unauthorized administrative access.
- Scan for webshells or backdoors in the WordPress installation.
Valters IT
Securing Digital Frontiers
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.