CVE-2025-23815
Executive Summary
CVE-2025-23815 is a Cross-Site Request Forgery (CSRF) vulnerability in the root Cookie WordPress plugin (versions <= 1.6) developed by Linickx. This flaw allows an attacker to forge requests on behalf of an authenticated administrator, potentially leading to unauthorized changes to cookie settings, session hijacking, or privilege escalation. The vulnerability is classified as CWE-352 with a CVSS score of 7.1 (High). No public exploit code or patch is currently available, and the vendor has not responded to disclosure attempts. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk remains significant for unpatched WordPress 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. As a supply chain risk, any site using the root Cookie plugin version 1.6 or earlier is vulnerable. Administrators should immediately disable the plugin until a patch is released or consider removing it entirely.
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) – Attacker does not need authentication.
- User Interaction (UI): Required (R) – Victim must click a crafted link or visit a malicious page.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality Impact (C): High (H) – Potential exposure of sensitive cookie data.
- Integrity Impact (I): High (H) – Unauthorized modification of cookie settings.
- Availability Impact (A): None (N) – No denial-of-service impact.
Threat Level: High – Exploitation could lead to full compromise of WordPress admin sessions.
Deep Dive & Mechanics
The root Cookie plugin provides functionality to manage cookies on a WordPress site. The CSRF vulnerability arises because the plugin fails to implement nonce verification or other anti-CSRF tokens in its administrative actions. An attacker can craft a malicious HTML page or email that, when visited by an authenticated WordPress administrator, triggers a forged request to the plugin’s settings endpoint. This can result in:
- Unauthorized modification of cookie consent settings.
- Injection of malicious cookies.
- Session hijacking by altering authentication cookies.
The attack requires the victim to be logged into WordPress and to interact with the attacker’s payload (e.g., clicking a link). Since no authentication is needed from the attacker, the barrier to exploitation is low.
Vulnerable vs. Patched Code
Vulnerable Code (root Cookie <= 1.6): The plugin likely processes form submissions without checking a nonce. Example vulnerable pattern:
if ( isset( $_POST['save_cookie_settings'] ) ) {
update_option( 'root_cookie_settings', $_POST['cookie_data'] );
}
Patched Code (Hypothetical): A secure version would include nonce verification:
if ( isset( $_POST['save_cookie_settings'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'root_cookie_nonce' ) ) {
update_option( 'root_cookie_settings', sanitize_text_field( $_POST['cookie_data'] ) );
}
Since no official patch exists, users must manually add nonce checks or disable the plugin.
Exploitation & Lab Setup
Red Team (Attack Simulation)
- Setup: Deploy a WordPress instance with root Cookie plugin v1.6.
- Craft Payload: Create an HTML page that auto-submits a form to the vulnerable endpoint:
<form action="http://target/wp-admin/admin-post.php?action=root_cookie_save" method="POST"> <input type="hidden" name="cookie_data" value="malicious_cookie_value"> <input type="submit" value="Click me"> </form> <script>document.forms[0].submit();</script> - Deliver: Host the page and send the link to an authenticated admin via email or social engineering.
- Result: The admin’s browser sends the forged request, modifying cookie settings.
Blue Team (Defense & Detection)
- Monitor for unusual POST requests to
admin-post.phpwithaction=root_cookie_savefrom non-admin IPs. - Implement Content Security Policy (CSP) headers to block external form submissions.
- Use Web Application Firewall (WAF) rules to detect CSRF patterns.
- Educate users to avoid clicking suspicious links while logged into WordPress.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-post.php?action=root_cookie_savewith unexpectedcookie_dataparameters. - File: Modified
wp_optionstable entries containingroot_cookie_settingswith anomalous values. - Log: WordPress debug logs showing failed nonce checks (if patched) or missing nonce errors.
- Behavior: Sudden changes in cookie consent banners or unexpected session expirations.
Detection Engineering
YARA Rule
rule detect_root_cookie_csrf {
meta:
description = "Detects CSRF exploitation attempts against root Cookie plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-23815"
strings:
$action = "action=root_cookie_save"
$cookie_data = "cookie_data="
condition:
all of them
}
Sigma Rule
title: CSRF Exploitation Against root Cookie Plugin
id: 8a3f7c2e-1b4d-4e9f-8c6a-5d2b7e1f3a0c
status: experimental
description: Detects HTTP POST requests targeting root Cookie plugin without proper CSRF tokens
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'action=root_cookie_save'
condition: selection
falsepositives:
- Legitimate admin actions (if nonce is present)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-23815 - CSRF Attempt Against root Cookie Plugin";
flow:to_server,established;
content:"POST"; http_method;
content:"action=root_cookie_save"; http_uri;
content:"cookie_data="; http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate Action: Disable the root Cookie plugin until a patch is released.
- Alternative: Replace with a maintained cookie consent plugin (e.g., Cookie Notice, GDPR Cookie Consent).
- Code Fix: If you must keep the plugin, add nonce verification to all admin actions:
add_action( 'admin_post_root_cookie_save', function() { if ( ! wp_verify_nonce( $_POST['_wpnonce'], 'root_cookie_nonce' ) ) { wp_die( 'CSRF detected!' ); } // Process request } ); - WAF Rule: Block POST requests to
admin-post.phpwithaction=root_cookie_saveunless originating from the admin dashboard. - Monitor: Review WordPress logs for suspicious activity related to cookie settings.
Valters IT
DevSecOps & Cyber Threat Intelligence
Report generated for CVE-2025-23815
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.