CVE-2025-24693
Executive Summary
CVE-2025-24693 is a Missing Authorization vulnerability in the Advanced Notifications WordPress plugin (versions <= 1.2.7) developed by Yehi. This flaw allows an authenticated attacker with low privileges (e.g., subscriber) to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to notification settings or data. The vulnerability has a CVSS score of 4.3 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept (PoC) or exploit code has been released, and the vendor has not provided a patch. As a WordPress plugin, this issue is specific to the WordPress ecosystem and does not involve Apache or Nginx.
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. Users are advised to monitor for updates from the vendor or consider disabling the plugin until a patch is available. No known supply chain attacks have been reported.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: Low (PR:L) – requires authenticated user
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
Threat Level: Medium. Exploitation requires authentication but low privileges, making it accessible to many users. However, the impact is limited to low confidentiality loss.
Deep Dive & Mechanics
The vulnerability resides in the Advanced Notifications plugin’s AJAX handlers or REST endpoints that fail to properly enforce capability checks. In WordPress, plugins often register AJAX actions for both authenticated and unauthenticated users. In this case, the plugin likely uses wp_ajax_ hooks without verifying the user’s capability (e.g., manage_options or edit_posts). An attacker with a subscriber-level account can send crafted requests to these endpoints, bypassing intended access controls.
The missing authorization check allows the attacker to:
- View or modify notification settings.
- Access sensitive configuration data.
- Potentially escalate privileges if combined with other vulnerabilities.
The plugin’s code likely contains functions like:
add_action('wp_ajax_save_notification', 'save_notification_callback');
function save_notification_callback() {
// Missing current_user_can() check
update_option('notification_settings', $_POST['data']);
}
Vulnerable vs. Patched Code
Vulnerable Code (<= 1.2.7):
add_action('wp_ajax_get_notifications', 'get_notifications_callback');
function get_notifications_callback() {
// No capability check
$notifications = get_option('advanced_notifications_data');
wp_send_json_success($notifications);
}
Patched Code (Hypothetical):
add_action('wp_ajax_get_notifications', 'get_notifications_callback');
function get_notifications_callback() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
$notifications = get_option('advanced_notifications_data');
wp_send_json_success($notifications);
}
The patch adds a current_user_can('manage_options') check to restrict access to administrators only.
Exploitation & Lab Setup
Red Team
- Prerequisites: A WordPress site with Advanced Notifications plugin <= 1.2.7 and a subscriber-level account.
- Steps:
- Log in as a subscriber.
- Identify AJAX endpoints via source code or network requests (e.g.,
admin-ajax.php?action=advanced_notifications_get). - Craft a request using cURL:
curl -X POST 'http://target/wp-admin/admin-ajax.php' \ -H 'Cookie: wordpress_logged_in_xxx=...' \ -d 'action=advanced_notifications_get' - If successful, the response will contain sensitive data.
Blue Team
- Detection: Monitor for unusual AJAX requests from low-privilege users to plugin-specific actions.
- Hunting: Search logs for
admin-ajax.phprequests withactionparameters containingadvanced_notifications. - Mitigation: Implement a Web Application Firewall (WAF) rule to block unauthorized access to plugin endpoints.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=advanced_notifications_*from non-admin users. - Logs: WordPress debug logs showing
wp_ajax_advanced_notifications_*calls by users with rolesubscriber. - File: Modified
wp_optionstable entries foradvanced_notifications_data.
Detection Engineering
YARA Rule
rule CVE_2025_24693_Advanced_Notifications {
meta:
description = "Detects missing authorization in Advanced Notifications plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-24693"
strings:
$ajax_hook = /add_action\(['\"]wp_ajax_advanced_notifications_[a-z_]+['\"]/
$missing_cap = /current_user_can\(/
condition:
$ajax_hook and not $missing_cap
}
Sigma Rule
title: CVE-2025-24693 - Missing Authorization in Advanced Notifications
id: 8a3f7c2e-5d1b-4a9f-8c6e-2b1d3f4a5c6e
status: experimental
description: Detects exploitation attempts of missing authorization in Advanced Notifications plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=advanced_notifications_'
sc-status: 200
condition: selection
falsepositives:
- Legitimate admin activity
level: medium
Suricata Rule
alert http any any -> any any (
msg:"CVE-2025-24693 - Advanced Notifications Missing Authorization Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=advanced_notifications_"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate: Disable the Advanced Notifications plugin until a patch is available.
- Workaround: Add a custom capability check via a mu-plugin:
add_action('init', function() { if (current_user_can('subscriber')) { remove_all_actions('wp_ajax_advanced_notifications_*'); } }); - Long-term: Monitor the WordPress plugin repository for updates. If no patch is released, consider replacing the plugin with an alternative.
- Detection: Deploy the provided YARA, Sigma, and Suricata rules to detect exploitation attempts.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.