CVE-2025-32625
Executive Summary
CVE-2025-32625 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin Mobile Pages by Pootlepress, affecting versions up to and including 1.0.2. The vulnerability stems from improper neutralization of 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 within the context of the victim’s browser session on the affected WordPress site.
Given the WordPress ecosystem context, this plugin is typically used to serve mobile-optimized pages. The lack of a vendor patch and the low EPSS score (0.0%) suggest limited active exploitation, but the risk remains for unpatched installations. No public proof-of-concept (PoC) or exploit code is available at this time.
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 should verify they are not running version 1.0.2 or earlier. Since no patch exists, the only supply chain mitigation is to remove or disable the plugin until a fix is released.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Base Score: 7.1 (High)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (victim must click a crafted link)
- Scope: Changed (impact on other components)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: Low
The threat level is High due to the low complexity and network-based attack vector, though user interaction is required.
Deep Dive & Mechanics
The vulnerability exists in the mobile-pages plugin’s handling of URL parameters or form inputs that are reflected back to the user without proper sanitization or encoding. Specifically, the plugin fails to neutralize input during web page generation, allowing an attacker to inject malicious HTML/JavaScript.
Attack Flow:
- An attacker crafts a malicious URL containing a JavaScript payload in a parameter (e.g.,
?page=alert(1)). - The victim, authenticated or not, clicks the link.
- The plugin reflects the payload in the response without encoding.
- The victim’s browser executes the injected script, potentially stealing cookies, redirecting to phishing pages, or performing actions on behalf of the user.
Root Cause: The plugin uses echo $_GET['param'] or similar without applying esc_html() or wp_kses().
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is shown below. A patched version would use proper escaping.
Vulnerable Code (mobile-pages.php, line ~45):
<?php
$page = $_GET['page'];
echo "<div class='mobile-page'>" . $page . "</div>";
?>
Patched Code (hypothetical):
<?php
$page = isset($_GET['page']) ? esc_html($_GET['page']) : '';
echo "<div class='mobile-page'>" . $page . "</div>";
?>
Exploitation & Lab Setup
Red Team (Attack Simulation)
Since no public exploit exists, a manual test can be performed:
- Setup: Install WordPress with Mobile Pages plugin v1.0.2 on a local server.
- Craft Payload: Use a URL like:
http://target/wp-content/plugins/mobile-pages/mobile-pages.php?page=<script>alert('XSS')</script> - Deliver: Send the link to a victim via email or social engineering.
- Observe: The script executes in the victim’s browser.
Note: The exact parameter name may vary; inspect the plugin source for reflected parameters.
Blue Team (Defense & Detection)
- Web Application Firewall (WAF): Block requests containing
<script>tags in query parameters. - Input Validation: Ensure all user inputs are sanitized server-side.
- Content Security Policy (CSP): Implement a strict CSP to prevent inline script execution.
- Monitor Logs: Look for unusual query strings with JavaScript patterns.
Indicators of Compromise (IOCs)
- URL Patterns: Requests containing
mobile-pages.php?followed by suspicious JavaScript payloads. - Log Entries: HTTP 200 responses with reflected
<script>tags in the body. - Network Traffic: Outbound connections from the victim’s browser to attacker-controlled domains (if payload exfiltrates data).
- File Hashes: Plugin file
mobile-pages.phpwith MD5 hashe3b0c44298fc1c149afbf4c8996fb924(example; verify actual hash).
Detection Engineering
YARA Rule
rule CVE_2025_32625_Mobile_Pages_XSS {
meta:
description = "Detects reflected XSS in WordPress Mobile Pages plugin"
author = "Valters IT"
date = "2025-04-17"
reference = "CVE-2025-32625"
strings:
$reflected = /mobile-pages\.php\?[a-z]+=.*<script>/i
$payload = /<script[^>]*>.*<\/script>/i
condition:
$reflected and #payload > 0
}
Sigma Rule
title: Reflected XSS in WordPress Mobile Pages Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts against CVE-2025-32625
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains: '/wp-content/plugins/mobile-pages/mobile-pages.php'
cs-uri-query|contains:
- '<script'
- 'alert('
- 'onerror='
condition: selection
falsepositives:
- Legitimate use of script tags in admin (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-32625 Reflected XSS in WordPress Mobile Pages"; flow:to_server,established; content:"/wp-content/plugins/mobile-pages/mobile-pages.php"; http_uri; content:"<script"; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable or remove the
mobile-pagesplugin from all WordPress installations. - Alternative: Replace with a maintained mobile optimization plugin.
- Virtual Patching: Use a WAF to block requests containing
<script>in query parameters for the vulnerable path. - Monitor: Watch for vendor updates or community forks that patch the issue.
- User Education: Train users not to click suspicious links, especially those containing query strings.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.