CVE-2025-49993
Executive Summary
CVE-2025-49993 is a Missing Authorization vulnerability in the csarturas Cookie-Script.com WordPress plugin, affecting versions up to and including 1.2.1. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to sensitive data or functionality. The vulnerability is classified as Medium Severity with a CVSS score of 5.3, and as of this report, no official patch is available. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains for unpatched installations.
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 who installed the plugin directly from the repository or via automatic updates are at risk. Since no patch is available, the supply chain risk is elevated, as users must rely on manual mitigation or removal of the plugin.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure.
- Integrity (I): None (N) – No data modification.
- Availability (A): None (N) – No denial of service.
Threat Level: Medium. The vulnerability is easy to exploit remotely without authentication, but the impact is limited to low confidentiality loss.
Deep Dive & Mechanics
The vulnerability resides in the Cookie-Script.com WordPress plugin, which is used to manage cookie consent banners. The plugin fails to properly enforce authorization checks on certain AJAX actions or REST API endpoints, allowing unauthenticated users to access or modify settings that should be restricted to administrators.
Root Cause: The plugin does not implement capability checks (e.g., current_user_can('manage_options')) before executing sensitive operations. This allows any visitor to trigger actions such as:
- Retrieving stored cookie consent logs.
- Modifying plugin configuration (e.g., script URLs, consent modes).
- Accessing internal plugin data that may contain user session information.
Attack Vector: An attacker sends crafted HTTP requests to the vulnerable endpoints without any authentication token or session. The plugin processes the request due to missing wp_nonce verification or user capability checks.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common WordPress security practices.
Vulnerable Code (Example):
add_action('wp_ajax_nopriv_cookie_script_get_logs', 'cookie_script_get_logs');
function cookie_script_get_logs() {
// No capability check
$logs = get_option('cookie_script_logs');
wp_send_json($logs);
}
Patched Code (Hypothetical):
add_action('wp_ajax_nopriv_cookie_script_get_logs', 'cookie_script_get_logs');
function cookie_script_get_logs() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
$logs = get_option('cookie_script_logs');
wp_send_json($logs);
}
The patched version adds a capability check (current_user_can('manage_options')) to ensure only administrators can access the function.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Target WordPress site with Cookie-Script.com plugin <= 1.2.1.
- Network access to the site.
Exploitation Steps:
- Identify vulnerable endpoints by analyzing the plugin's JavaScript or source code (e.g.,
admin-ajax.phpactions). - Send a crafted HTTP request to the vulnerable endpoint without authentication.
Example Request (using cURL):
curl -X POST 'https://target-site.com/wp-admin/admin-ajax.php' \
-d 'action=cookie_script_get_logs'
Expected Response: JSON data containing plugin logs or configuration.
Blue Team
Detection:
- Monitor for unusual
admin-ajax.phprequests from unauthenticated users. - Look for requests to actions prefixed with
cookie_script_without a valid nonce.
Hunting Query (Splunk):
index=web sourcetype=access_combined
| search uri="/wp-admin/admin-ajax.php" action=cookie_script_*
| eval authenticated=if(cookie="*wordpress_logged_in*", "yes", "no")
| where authenticated="no"
| stats count by src_ip, uri, action
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=cookie_script_*parameters. - Unauthenticated access to plugin-specific REST endpoints (e.g.,
/wp-json/cookie-script/v1/*).
- HTTP POST requests to
File IOCs:
- Plugin file:
/wp-content/plugins/cookie-script-com/cookie-script-com.php - Suspicious log entries in
wp_optionstable undercookie_script_logs.
- Plugin file:
Behavioral IOCs:
- Unexpected changes to cookie consent settings.
- Unauthorized retrieval of user consent logs.
Detection Engineering
YARA Rule
rule CVE_2025_49993_CookieScript_Missing_Auth {
meta:
description = "Detects missing authorization in Cookie-Script.com plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-49993"
strings:
$func1 = "cookie_script_get_logs" ascii wide nocase
$func2 = "cookie_script_update_config" ascii wide nocase
$func3 = "wp_ajax_nopriv_" ascii wide nocase
condition:
any of ($func*) and #func3 > 0
}
Sigma Rule
title: CVE-2025-49993 - Missing Authorization in Cookie-Script.com Plugin
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated access to Cookie-Script.com plugin AJAX actions
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=cookie_script_'
condition: selection
falsepositives:
- Legitimate admin actions (if nonce is present)
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-49993 - Cookie-Script.com Missing Authorization"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=cookie_script_"; http_client_body; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until an official patch is released.
- Implement a Web Application Firewall (WAF) rule to block unauthenticated requests to
admin-ajax.phpwithaction=cookie_script_*parameters. - Restrict access to
/wp-admin/directory via.htaccessor IP whitelisting.
Long-term Fix:
- Monitor the plugin's official repository for a patched version (>= 1.2.2).
- Apply the vendor's update as soon as it becomes available.
- Consider replacing the plugin with an alternative that follows secure coding practices.
Workaround (if plugin must remain active):
- Add a custom function to your theme's
functions.phpto enforce capability checks:
add_action('init', function() {
if (defined('DOING_AJAX') && DOING_AJAX) {
$action = $_REQUEST['action'] ?? '';
if (strpos($action, 'cookie_script_') === 0 && !current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
}
});
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.