CVE-2024-2261
Executive Summary
CVE-2024-2261 is a Sensitive Information Exposure vulnerability in the Event Tickets and Registration WordPress plugin (versions up to and including 5.8.2). This flaw resides in the RSVP functionality, allowing authenticated attackers with Contributor-level access or higher to extract sensitive personal data, including email addresses and physical street addresses, from the WordPress database. The vulnerability is classified as CWE-200 and carries a CVSS v3.1 base score of 4.3 (Medium). The EPSS score is 0.0%, indicating low exploitation probability in the wild, but the risk to privacy and compliance (e.g., GDPR, CCPA) is significant. No public exploit code or Nuclei template is available at this time.
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 a WordPress plugin distributed via the official WordPress plugin repository. Organizations using this plugin should treat it as a supply chain risk, as the plugin is a third-party component integrated into the WordPress ecosystem. No patched version has been released by the vendor, making this an unpatched supply chain vulnerability.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): Low (L) – Requires Contributor-level authentication.
- User Interaction (UI): None (N) – No user action needed.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): Low (L) – Limited exposure of sensitive data.
- Integrity (I): None (N) – No data modification.
- Availability (A): None (N) – No service disruption.
Threat Level: Medium. While the CVSS score is 4.3, the exposure of personally identifiable information (PII) such as emails and street addresses elevates the risk for organizations subject to data privacy regulations.
Deep Dive & Mechanics
The vulnerability exists in the RSVP (Répondez s'il vous plaît) functionality of the Event Tickets and Registration plugin. The plugin fails to properly restrict access to sensitive user data when processing RSVP responses. Specifically, when an authenticated user with Contributor-level access or higher interacts with the RSVP feature, the plugin exposes email addresses and street addresses of event attendees without proper authorization checks.
Root Cause: The plugin's REST API endpoint or AJAX handler responsible for retrieving RSVP data does not enforce capability checks beyond the edit_posts capability (which Contributors possess). This allows any user with Contributor access to query and extract attendee data that should be restricted to administrators or event managers.
Attack Vector:
- Attacker authenticates with a Contributor-level account.
- Attacker sends a crafted request to the vulnerable endpoint (e.g.,
/wp-json/tribe/tickets/v1/rsvp/{id}/attendees). - The plugin returns a JSON response containing sensitive attendee data (emails, street addresses).
- Attacker exfiltrates the data.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code path is identified as follows:
Vulnerable Code (Event Tickets <= 5.8.2):
// In tribe-tickets/src/Tribe/RSVP/Attendees.php
public function get_attendees( $post_id ) {
// No capability check for viewing sensitive data
$attendees = $this->get_attendees_from_db( $post_id );
return $attendees; // Exposes email and address fields
}
Patched Code (Hypothetical):
// Patched version would include:
public function get_attendees( $post_id ) {
if ( ! current_user_can( 'manage_options' ) ) {
return new WP_Error( 'forbidden', 'You do not have permission to view attendee data.' );
}
$attendees = $this->get_attendees_from_db( $post_id );
// Optionally mask sensitive fields
return $attendees;
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress instance with Event Tickets plugin <= 5.8.2.
- Contributor-level account credentials.
Exploitation Steps:
- Log in as a Contributor.
- Obtain a valid RSVP post ID (e.g., via browsing events).
- Send a GET request to the vulnerable endpoint:
GET /wp-json/tribe/tickets/v1/rsvp/123/attendees HTTP/1.1
Host: target-site.com
Cookie: wordpress_logged_in_xxx=...
- Parse the JSON response to extract emails and addresses.
Example cURL Command:
curl -X GET "https://target-site.com/wp-json/tribe/tickets/v1/rsvp/123/attendees" \
-H "Cookie: wordpress_logged_in_abc123=..."
Blue Team (Detection & Hardening)
Detection:
- Monitor for unusual API requests to
/wp-json/tribe/tickets/v1/rsvp/*/attendeesfrom non-admin users. - Alert on Contributor accounts making multiple requests to this endpoint.
Hardening:
- Implement a Web Application Firewall (WAF) rule to block access to the vulnerable endpoint for users without
manage_optionscapability. - Apply a temporary patch by adding a capability check via a custom plugin or theme functions.php:
add_filter( 'tribe_tickets_rsvp_attendees_data', function( $data, $post_id ) {
if ( ! current_user_can( 'manage_options' ) ) {
return array();
}
return $data;
}, 10, 2 );
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/wp-json/tribe/tickets/v1/rsvp/*/attendeeswith a 200 response containingemailandaddressfields. - User-Agent strings associated with automated scraping tools (e.g.,
python-requests,curl).
- HTTP requests to
Host IOCs:
- Unusual Contributor account activity in WordPress logs.
- Large number of API requests from a single user within a short timeframe.
File IOCs:
- Log entries in
/var/log/nginx/access.logor/var/log/apache2/access.logshowing repeated requests to the vulnerable endpoint.
- Log entries in
Detection Engineering
YARA Rule
rule CVE_2024_2261_WordPress_Event_Tickets_Exposure {
meta:
description = "Detects exploitation attempts for CVE-2024-2261 in WordPress Event Tickets plugin"
author = "Valters IT"
date = "2024-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-2261"
strings:
$api_endpoint = "/wp-json/tribe/tickets/v1/rsvp/"
$sensitive_data = /"email":"[^"]+@[^"]+\.[^"]+"/
$address_field = /"street_address":"[^"]+"/
condition:
$api_endpoint and ($sensitive_data or $address_field)
}
Sigma Rule
title: CVE-2024-2261 - Sensitive Data Exposure via Event Tickets RSVP API
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests to the vulnerable Event Tickets RSVP endpoint that may indicate data exfiltration
author: Valters IT
date: 2024/01/01
logsource:
category: webserver
product: apache
service: accesslog
detection:
selection:
cs-uri-stem|contains: "/wp-json/tribe/tickets/v1/rsvp/"
cs-uri-stem|endswith: "/attendees"
condition: selection
falsepositives:
- Legitimate admin activity
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-2261 - Event Tickets RSVP Sensitive Data Exposure";
flow:to_server,established;
content:"/wp-json/tribe/tickets/v1/rsvp/";
content:"/attendees";
http_uri;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the Event Tickets plugin until a patch is released.
- Restrict Contributor accounts to the minimum necessary permissions.
- Implement a WAF rule to block access to
/wp-json/tribe/tickets/v1/rsvp/*/attendeesfor non-admin users.
Long-term Fix:
- Monitor the vendor's repository for a patched version (expected > 5.8.2).
- Apply the temporary patch provided in the Blue Team section.
Workaround:
- Use a custom plugin to override the vulnerable function and add capability checks.
Valters IT
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.