CVE-2025-62119
Executive Summary
CVE-2025-62119 is a DOM-Based Cross-Site Scripting (XSS) vulnerability in the WordPress plugin Add Featured Image Custom Link by ViitorCloud Technologies Pvt Ltd, affecting versions up to and including 2.0.0. The vulnerability arises from improper neutralization of user input during web page generation, allowing an attacker to inject malicious scripts that execute in the context of the victim's browser. The attack vector is network-based, requires user interaction, and has a CVSS score of 5.9 (Medium). No public exploit code or proof-of-concept is currently available, and the patch status remains unknown.
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 through the official WordPress plugin repository. Users who have installed the plugin via the WordPress dashboard or directly from the repository are at risk. The plugin is not available on NPM, PyPI, Go, or Ruby ecosystems. Supply chain risk is moderate due to the lack of a patch and the plugin's potential inclusion in WordPress site builds.
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) – Impact may extend beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): Low (L) – Limited service disruption.
Threat Level: Medium. The vulnerability requires user interaction, but the lack of a patch and the widespread use of WordPress plugins increase the risk.
Deep Dive & Mechanics
The vulnerability is a DOM-Based XSS, meaning the attack payload is executed entirely on the client side without being sent to the server. The plugin likely processes user-supplied input (e.g., a custom URL for featured images) and injects it into the DOM without proper sanitization. An attacker can craft a malicious URL containing JavaScript code that, when visited by an authenticated or unauthenticated user, executes in the browser context.
Root Cause: The plugin fails to escape or validate input before inserting it into the DOM via JavaScript, allowing an attacker to break out of the intended context and execute arbitrary scripts.
Attack Flow:
- Attacker crafts a malicious link:
http://victim-site.com/?custom-url=javascript:alert(document.cookie) - Victim clicks the link or is redirected to it.
- The plugin's JavaScript reads the
custom-urlparameter and inserts it into the DOM without sanitization. - The browser executes the injected JavaScript, leading to XSS.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is assumed to be present in all versions <= 2.0.0. A typical vulnerable pattern in WordPress plugins might look like:
Vulnerable Code (JavaScript):
var url = new URLSearchParams(window.location.search).get('custom-url');
document.getElementById('featured-image-link').href = url;
Patched Code (Hypothetical):
var url = new URLSearchParams(window.location.search).get('custom-url');
var sanitizedUrl = DOMPurify.sanitize(url);
document.getElementById('featured-image-link').href = sanitizedUrl;
The patched version would use a sanitization library like DOMPurify or encode the URL before insertion.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site with the vulnerable plugin installed (version <= 2.0.0).
- Ability to craft a malicious URL.
Exploitation Steps:
- Identify the vulnerable parameter (likely
custom-urlor similar). - Craft a payload:
javascript:alert('XSS')or<img src=x onerror=alert(1)>. - Deliver the link to the victim via phishing email or social engineering.
- Upon clicking, the XSS executes in the victim's browser.
Example Payload:
http://victim-site.com/?custom-url=javascript:alert(document.cookie)
Blue Team
Detection:
- Monitor web server logs for requests containing
custom-url=with suspicious patterns (e.g.,javascript:,<script>,onerror=). - Use browser-based XSS filters (e.g., X-XSS-Protection header).
- Implement Content Security Policy (CSP) to block inline scripts.
Mitigation:
- Disable or remove the plugin until a patch is available.
- Use a Web Application Firewall (WAF) to block malicious query strings.
- Educate users about phishing links.
Indicators of Compromise (IOCs)
- URL Patterns:
?custom-url=javascript:*,?custom-url=<script>*,?custom-url=*onerror=* - HTTP Request Headers: Referer header containing the malicious URL.
- Client-Side Artifacts: JavaScript execution of
alert(),document.cookie, orfetch()to external domains. - Network Traffic: Outbound connections to attacker-controlled domains from the victim's browser.
Detection Engineering
YARA Rule
rule CVE_2025_62119_DOM_XSS {
meta:
description = "Detects DOM-based XSS attempts targeting CVE-2025-62119"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-62119"
strings:
$payload1 = "custom-url="
$payload2 = "javascript:"
$payload3 = "<script>"
$payload4 = "onerror="
condition:
any of ($payload*) and #payload1 > 0
}
Sigma Rule
title: CVE-2025-62119 DOM-Based XSS Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests with suspicious custom-url parameter indicating DOM-based XSS
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains: "custom-url="
c-uri|contains|any:
- "javascript:"
- "<script>"
- "onerror="
condition: selection
falsepositives:
- Legitimate use of custom URLs with similar patterns (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-62119 DOM-Based XSS Attempt"; flow:to_server,established; content:"custom-url="; http_uri; content:"javascript:"; http_uri; nocase; content:"<script>"; http_uri; nocase; content:"onerror="; http_uri; nocase; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released.
- Implement a Web Application Firewall (WAF) rule to block requests containing
custom-url=with suspicious patterns. - Add Content Security Policy (CSP) headers to restrict script execution:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
Long-Term Actions:
- Monitor the vendor's website or WordPress plugin repository for updates.
- Consider replacing the plugin with an alternative that is actively maintained.
- Conduct a security audit of all WordPress plugins in use.
Workaround:
- If the plugin is critical, manually sanitize the
custom-urlparameter by editing the plugin's JavaScript file to useencodeURI()or a sanitization library.
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.