CVE-2025-67991
Executive Summary
CVE-2025-67991 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin User Extra Fields (wp-user-extra-fields) by vanquish, affecting versions up to and including 16.8. 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. The CVSS score is 7.1 (High), and no public exploit code or patch is currently available. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, 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 a WordPress plugin distributed via the official WordPress plugin repository. Users should verify the integrity of their plugin files and monitor for updates from the vendor. No known supply chain compromise has been reported, but the lack of a patch increases the risk of malicious actors distributing modified versions.
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.
- Scope (S): Changed (C) – Impact can affect other components.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited modification possible.
- Availability (A): Low (L) – Limited service disruption.
Threat Level: High (7.1) – Reflected XSS can be weaponized for phishing campaigns or targeted attacks against WordPress administrators.
Deep Dive & Mechanics
The vulnerability exists in the wp-user-extra-fields plugin, which provides additional user profile fields for WordPress. The plugin fails to sanitize or escape user input when rendering certain parameters in the URL, leading to reflected XSS. An attacker can craft a malicious URL containing JavaScript payloads in a query parameter (e.g., ?field=...). When a victim clicks the link, the injected script executes in the context of the victim's browser, potentially stealing cookies, session tokens, or performing actions on behalf of the user.
The vulnerable code likely resides in a PHP file that directly echoes $_GET parameters without proper escaping. For example:
echo $_GET['field'];
This allows an attacker to inject <script>alert('XSS')</script>.
Vulnerable vs. Patched Code
Vulnerable Code (wp-user-extra-fields <= 16.8):
// In some template or handler file
$field_value = $_GET['field'];
echo '<div class="user-field">' . $field_value . '</div>';
Patched Code (Hypothetical):
// Properly escape output
$field_value = sanitize_text_field($_GET['field']);
echo '<div class="user-field">' . esc_html($field_value) . '</div>';
The patch would use esc_html() or wp_kses_post() to neutralize HTML/JavaScript.
Exploitation & Lab Setup
Red Team (Attack Simulation)
- Craft the Payload: Create a URL with a malicious script:
http://target.com/wp-content/plugins/wp-user-extra-fields/some-page.php?field=<script>alert(document.cookie)</script> - Deliver the Link: Use phishing emails, social media, or compromised forums to trick a WordPress admin into clicking the link.
- Execute: The script runs in the admin's browser, exfiltrating session cookies to an attacker-controlled server.
Example Exploit URL:
http://target.com/wp-content/plugins/wp-user-extra-fields/some-page.php?field=<img src=x onerror=alert(1)>
Blue Team (Defense & Detection)
- Monitor Logs: Look for unusual query parameters containing
<script>,<img>, oronerrorin web server logs. - Deploy WAF Rules: Block requests with suspicious patterns in query strings.
- User Training: Educate users not to click untrusted links.
Indicators of Compromise (IOCs)
- URL Patterns: Requests containing
wp-user-extra-fieldswith parameters likefield,extra, oruserfollowed by HTML/JavaScript. - Log Entries: HTTP 200 responses with injected script tags in the response body.
- Network Traffic: Outbound connections to attacker-controlled domains from the victim's browser (e.g.,
evil.com/steal.php?cookie=...).
Detection Engineering
YARA Rule
rule CVE_2025_67991_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against User Extra Fields plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67991"
strings:
$payload1 = /<script[^>]*>.*<\/script>/i
$payload2 = /onerror\s*=\s*["']?[^"']*["']?/i
$payload3 = /onload\s*=\s*["']?[^"']*["']?/i
$plugin_path = "wp-user-extra-fields"
condition:
any of ($payload*) and $plugin_path
}
Sigma Rule
title: Reflected XSS Attempt Against User Extra Fields Plugin
id: 8a3b2c1d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects reflected XSS attempts targeting CVE-2025-67991
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-uri-query|contains:
- 'wp-user-extra-fields'
- '<script'
- 'onerror='
- 'onload='
condition: selection
falsepositives:
- Legitimate use of script tags in admin panels (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-67991 Reflected XSS Attempt"; flow:to_server,established; content:"wp-user-extra-fields"; http_uri; pcre:"/(<script|onerror|onload)/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable the
wp-user-extra-fieldsplugin until a patch is released. - Virtual Patching: Deploy a WAF rule to block query strings containing
<script>,onerror, oronload. - Code Fix: Apply input sanitization using
sanitize_text_field()and output escaping withesc_html()in all plugin files. - Monitor: Watch for updates from the vendor (vanquish) and apply the patch as soon as it becomes available.
- User Awareness: Train users to avoid clicking suspicious links, especially those containing the plugin path.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.