Wordpress Plugin EventON Calendar 4.4 - Unauthenticated Post Access via IDOR

Exploit Author: Miguel Santareno Analysis Author: www.bubbleslearn.ir Category: WebApps Language: PHP Published Date: 2023-08-04
# Exploit Title: Wordpress Plugin EventON Calendar 4.4 - Unauthenticated Post Access via IDOR
# Date: 03.08.2023
# Exploit Author: Miguel Santareno
# Vendor Homepage: https://www.myeventon.com/
# Version: 4.4
# Tested on: Google and Firefox latest version
# CVE : CVE-2023-3219

# 1. Description
The plugin does not validate that the event_id parameter in its eventon_ics_download ajax action is a valid Event, allowing unauthenticated visitors to access any Post (including unpublished or protected posts) content via the ics export functionality by providing the numeric id of the post.


# 2. Proof of Concept (PoC)
Proof of Concept:
https://example.com/wp-admin/admin-ajax.php?action=eventon_ics_download&event_id=<any post id>


WordPress Plugin EventON Calendar 4.4: Unauthenticated Post Access via IDOR Vulnerability

Security researchers have uncovered a critical vulnerability in the popular EventON Calendar plugin, version 4.4, which allows unauthenticated attackers to access private or unpublished WordPress posts through a flaw known as IDOR (Insecure Direct Object Reference). This vulnerability, assigned CVE-2023-3219, exposes sensitive data by bypassing authentication checks entirely.

Understanding the IDOR Vulnerability

IDOR occurs when a system exposes direct references to internal objects—such as database IDs—without proper validation or authorization checks. In this case, the eventon_ics_download AJAX action in EventON Calendar fails to verify whether the provided event_id corresponds to a legitimate, publicly accessible event.

As a result, any attacker with knowledge of a post’s numeric ID can retrieve its full content—including metadata, private notes, or even draft posts—by simply crafting a request to the plugin’s export endpoint.

Proof of Concept (PoC)


https://example.com/wp-admin/admin-ajax.php?action=eventon_ics_download&event_id=1234

By replacing 1234 with any valid post ID—whether it's an unpublished draft, a password-protected page, or a private event—this URL can be used to download an ICS (iCalendar) file containing the full event details. The ICS file is structured in a standard format, making it easy to parse and extract sensitive information such as:

  • Event title
  • Description text
  • Location details
  • Start and end timestamps
  • Custom metadata fields

Even if the post is not published, the ICS export still reveals its content—making this a potent data leakage vector.

Real-World Implications

Consider a scenario where a company uses EventON to schedule internal meetings, confidential product launches, or private client consultations. An attacker could:

  • Scrape public WordPress sites for post IDs using automated tools
  • Target specific IDs (e.g., event_id=501 for a “Q3 Strategy Meeting”) to retrieve sensitive agenda details
  • Use the exported ICS file to create calendar invites or share information with third parties

This vulnerability is particularly dangerous because:

  • It requires no login or authentication
  • It works across any WordPress site using the vulnerable plugin
  • It is exploitable via automated scanning tools

Technical Analysis: How the Vulnerability Works

Inside the eventon_ics_download AJAX handler, the plugin retrieves the post using:


$event = get_post( $event_id );

However, the code does not perform any checks to ensure the post is:

  • Published
  • Accessible to the current user
  • Valid and associated with an EventON event

As a result, even if $event_id points to a draft or a restricted post, the function proceeds to generate the ICS file without restriction.

Exploitation Tools and Automation

Security professionals have developed tools to automate the exploitation of this IDOR flaw:

  • WordPress ID Scanners: Tools that crawl public WordPress sites to extract post IDs from URLs or sitemaps
  • ICSParser: Custom scripts that decode ICS files to extract hidden content
  • Mass-Download Bots: Scripts that iterate through ID ranges (e.g., 1–1000) to harvest data

These tools can be used to:

  • Map internal event schedules
  • Identify sensitive content in unpublished posts
  • Reconstruct timelines of confidential activities

Recommended Mitigations and Fixes

Developers and site administrators must act immediately to reduce exposure. Below are best practices for securing the plugin:

Recommended Fix Description
Validate post status Check that $event->post_status == 'publish' before exporting.
Check user permissions Use current_user_can( 'read', $event_id ) to ensure the user can access the post.
Verify event type Ensure the post is linked to an EventON event via custom meta fields (e.g., _eventon_event_id).
Rate limiting Implement throttling to prevent mass downloads from a single IP.

Improved Code Example


if ( ! isset( $_POST['event_id'] ) || ! is_numeric( $_POST['event_id'] ) ) {
    wp_die( 'Invalid request.' );
}

$event_id = intval( $_POST['event_id'] );
$event = get_post( $event_id );

if ( ! $event || $event->post_status !== 'publish' ) {
    wp_die( 'Access denied.' );
}

if ( ! current_user_can( 'read', $event_id ) ) {
    wp_die( 'Access denied.' );
}

// Optional: Verify it's an EventON event
if ( ! get_post_meta( $event_id, '_eventon_event_id', true ) ) {
    wp_die( 'Not a valid EventON event.' );
}

// Proceed with ICS export

This corrected implementation adds multiple layers of validation:

  • Input sanitization
  • Status verification
  • Permission checks
  • Event type confirmation

These safeguards prevent unauthorized access while maintaining functionality for legitimate users.

Vendor Response and Patch Status

As of August 2023, the vendor MyEventON has acknowledged the issue and released an updated version (4.5) with the fix applied. Site owners are strongly advised to:

  • Update to EventON 4.5 or later
  • Disable the plugin if no longer needed
  • Monitor logs for suspicious eventon_ics_download requests

Failure to patch exposes sites to data breaches, especially in environments with sensitive or high-value content.

Conclusion

The CVE-2023-3219 vulnerability in EventON Calendar 4.4 highlights a critical oversight in plugin security: assuming that numeric IDs are safe without authorization checks. This IDOR flaw demonstrates how a single unchecked parameter can lead to widespread data exposure.

For developers and administrators, this case serves as a powerful reminder: always validate access rights, even when dealing with seemingly benign features like calendar exports. Security is not just about protecting login pages—it’s about securing every endpoint, every parameter, and every object reference.