CVE-2025-58009
Executive Summary
CVE-2025-58009 is a Missing Authorization vulnerability in the CP Multi View Event Calendar WordPress plugin by CodePeople, affecting versions up to and including 1.4.36. This flaw allows an authenticated attacker with low privileges to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to calendar data or functionality. The vulnerability has a low CVSS score of 3.8, indicating limited impact, but it remains unpatched as of the latest advisory. Given the WordPress ecosystem context, this issue could be leveraged in chained attacks or for information disclosure.
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 resides in a WordPress plugin distributed via the official WordPress plugin repository. Users are advised to monitor for updates from CodePeople and consider disabling the plugin if no patch is available. No known supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- CVSS Score: 3.8 (Low)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low
- Integrity Impact: None
- Availability Impact: None
The low severity reflects the requirement for authentication and the limited impact on confidentiality. However, in a WordPress multisite or shared hosting environment, this could expose sensitive event data.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the cp-multi-view-event-calendar plugin. Specifically, the plugin fails to validate user capabilities when processing AJAX requests or REST API endpoints related to calendar management. An authenticated user with subscriber-level privileges can access or modify calendar settings, events, or configurations that should be restricted to administrators.
The affected code likely resides in functions handling wp_ajax_ hooks without proper current_user_can() checks. For example, a function like cp_calendar_edit_event() might be registered for all authenticated users instead of only those with manage_options capability.
Vulnerable vs. Patched Code
Vulnerable Code (<= 1.4.36):
add_action('wp_ajax_cp_calendar_edit_event', 'cp_calendar_edit_event');
function cp_calendar_edit_event() {
// No capability check
$event_id = $_POST['event_id'];
// Process event update...
}
Patched Code (Hypothetical):
add_action('wp_ajax_cp_calendar_edit_event', 'cp_calendar_edit_event');
function cp_calendar_edit_event() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized');
}
$event_id = $_POST['event_id'];
// Process event update...
}
The patch adds a current_user_can('manage_options') check to restrict access to administrators.
Exploitation & Lab Setup
Red Team
- Prerequisites: Authenticated WordPress session with subscriber-level privileges.
- Exploit Steps:
- Identify vulnerable AJAX endpoints (e.g.,
admin-ajax.php?action=cp_calendar_edit_event). - Craft a POST request with malicious parameters to modify or view calendar data.
- Example using cURL:
curl -X POST 'http://target/wp-admin/admin-ajax.php' \ -d 'action=cp_calendar_edit_event&event_id=1&title=Hacked' \ --cookie 'wordpress_logged_in_xxx=session_cookie'
- Identify vulnerable AJAX endpoints (e.g.,
- Impact: Unauthorized modification of event details or disclosure of private calendar entries.
Blue Team
- Detection: Monitor for unusual AJAX requests to
admin-ajax.phpwith actions prefixed bycp_calendar_from low-privilege users. - Hunting: Review WordPress user role assignments and ensure no subscriber accounts have unexpected capabilities.
- Mitigation: Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithaction=cp_calendar_*from non-admin users.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=cp_calendar_parameters from low-privilege user agents. - File: Modified entries in
wp_postmetatable for calendar events. - Log: WordPress debug log entries showing unauthorized AJAX calls.
- Behavior: Subscriber accounts creating or editing calendar events.
Detection Engineering
YARA Rule
rule CVE_2025_58009_WordPress_Plugin {
meta:
description = "Detects CP Multi View Event Calendar plugin with missing authorization"
author = "Valters IT"
date = "2025-01-01"
reference = "CVE-2025-58009"
strings:
$func1 = "cp_calendar_edit_event" ascii wide nocase
$func2 = "cp_calendar_delete_event" ascii wide nocase
$func3 = "cp_calendar_get_events" ascii wide nocase
$vuln = "add_action('wp_ajax_" ascii wide nocase
condition:
any of ($func*) and $vuln
}
Sigma Rule
title: CVE-2025-58009 - Missing Authorization in CP Multi View Event Calendar
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects exploitation attempts of missing authorization in CP Multi View Event Calendar plugin
author: Valters IT
date: 2025-01-01
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=cp_calendar_'
condition: selection
falsepositives:
- Legitimate admin activity
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-58009 - CP Multi View Event Calendar Missing Authorization";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=cp_calendar_"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate: Disable the CP Multi View Event Calendar plugin until a patch is available.
- Workaround: Implement a custom plugin or mu-plugin that adds capability checks to all
cp_calendar_AJAX actions. - Long-term: Monitor the plugin's official page for updates and apply patches as soon as released.
- Hardening: Restrict user roles and enforce least privilege principles across the WordPress installation.
- WAF: Deploy virtual patching via WAF rules to block unauthorized AJAX requests.
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.