CVE-2025-24705
Executive Summary
CVE-2025-24705 is a Missing Authorization vulnerability in the WooCommerce Quick View plugin for WordPress, developed by Arshid. This flaw allows unauthenticated attackers to exploit incorrectly configured access control security levels, potentially exposing sensitive data or functionality intended for authorized users only. The vulnerability affects all versions up to and including 1.1.1. As of this report, no official patch has been released, and the vendor has not responded to disclosure attempts. The CVSS score is 5.3 (Medium), with a low EPSS probability of exploitation (0.0%), but the lack of authentication requirements makes it a viable target for automated scanning.
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 ecosystem. The plugin is distributed via the official WordPress plugin repository and third-party marketplaces. Users are advised to verify the integrity of their plugin files and monitor for unauthorized modifications. No known supply chain compromise has been reported, but the unpatched state increases risk for sites using this plugin.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Base Score: 5.3 (Medium)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low
- Integrity Impact: None
- Availability Impact: None
The threat level is Medium due to the low complexity and no authentication requirement. However, the impact is limited to low confidentiality loss, meaning an attacker can only access non-critical information or functionality.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the woo-quick-view plugin's AJAX handlers or REST endpoints. The plugin likely exposes functions that should require authentication (e.g., viewing product details, order information, or admin settings) but fails to verify user capabilities. An attacker can craft a direct HTTP request to these endpoints without a valid session or nonce, bypassing access controls.
Root Cause: The plugin does not implement current_user_can() or wp_verify_nonce() checks in its callback functions, allowing unauthenticated access to privileged actions.
Attack Vector: An attacker sends a crafted HTTP POST/GET request to the vulnerable endpoint, e.g., /wp-admin/admin-ajax.php?action=woo_quick_view_get_data&product_id=123. The server processes the request without verifying the user's role or permissions.
Vulnerable vs. Patched Code
Since no official patch exists, the following is a hypothetical fix based on standard WordPress security practices.
Vulnerable Code (version 1.1.1):
add_action('wp_ajax_nopriv_woo_quick_view_get_data', 'woo_quick_view_get_data');
function woo_quick_view_get_data() {
$product_id = intval($_GET['product_id']);
// No capability check
$product = wc_get_product($product_id);
echo json_encode($product->get_data());
wp_die();
}
Patched Code (hypothetical):
add_action('wp_ajax_nopriv_woo_quick_view_get_data', 'woo_quick_view_get_data');
function woo_quick_view_get_data() {
// Add capability check
if (!current_user_can('read')) {
wp_die('Unauthorized', 403);
}
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'woo_quick_view_nonce')) {
wp_die('Invalid nonce', 403);
}
$product_id = intval($_GET['product_id']);
$product = wc_get_product($product_id);
echo json_encode($product->get_data());
wp_die();
}
Exploitation & Lab Setup
Red Team
Prerequisites: A WordPress site with WooCommerce and WooCommerce Quick View plugin version <= 1.1.1.
Exploitation Steps:
- Identify the vulnerable endpoint by scanning for AJAX actions containing "woo_quick_view".
- Send a direct request without authentication:
curl -X GET "http://target.com/wp-admin/admin-ajax.php?action=woo_quick_view_get_data&product_id=1"
- If successful, the response will contain product data (e.g., JSON with price, stock, etc.) without requiring a login.
Note: No public exploit code is available at this time.
Blue Team
Detection:
- Monitor for requests to
/wp-admin/admin-ajax.phpwith action parameters containing "woo_quick_view" from unauthenticated sources. - Look for anomalous access to product data endpoints without a valid nonce or session cookie.
Hunting:
- Search web server logs for patterns like
action=woo_quick_viewandproduct_id=in GET/POST requests. - Correlate with absence of
wordpress_logged_incookie.
Indicators of Compromise (IOCs)
- URL Patterns:
/wp-admin/admin-ajax.php?action=woo_quick_view_* - HTTP Requests: GET/POST to admin-ajax.php with
actionparameter containingwoo_quick_view - Response Data: JSON containing product details (e.g.,
{"id":1,"name":"...","price":"..."}) - User Agent: Any (no specific agent required)
- Source IP: Any (no specific IPs)
Detection Engineering
YARA Rule
rule CVE_2025_24705_WooCommerce_Quick_View {
meta:
description = "Detects exploitation attempts for CVE-2025-24705 in WooCommerce Quick View plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-24705"
strings:
$ajax_action = "woo_quick_view" nocase
$product_param = "product_id=" nocase
$admin_ajax = "admin-ajax.php" nocase
condition:
all of them
}
Sigma Rule
title: CVE-2025-24705 WooCommerce Quick View Missing Authorization
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated access to WooCommerce Quick View AJAX endpoints
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'action=woo_quick_view'
- 'product_id='
cs-uri-stem|endswith: '/wp-admin/admin-ajax.php'
condition: selection
falsepositives:
- Legitimate authenticated users (check for cookie presence)
level: medium
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-24705 WooCommerce Quick View Missing Authorization Attempt";
flow:to_server,established;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=woo_quick_view"; http_uri;
content:"product_id="; http_uri;
classtype:attempted-recon;
sid:10000001;
rev:1;
reference:cve,2025-24705;
priority:2;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block requests to
/wp-admin/admin-ajax.phpcontainingaction=woo_quick_viewfrom unauthenticated sources. - Restrict access to admin-ajax.php via
.htaccessor server configuration for non-logged-in users (if feasible).
Long-term Fix:
- Contact the vendor for an official patch.
- If no patch is forthcoming, consider replacing the plugin with an alternative that has active security maintenance.
- Apply the hypothetical patch shown in the "Vulnerable vs. Patched Code" section by modifying the plugin files (note: this will be overwritten on plugin updates).
Workaround:
- Add a custom function to your theme's
functions.phpto block unauthenticated access to the vulnerable endpoint:
add_action('init', function() {
if (defined('DOING_AJAX') && DOING_AJAX && !is_user_logged_in()) {
if (strpos($_REQUEST['action'], 'woo_quick_view') !== false) {
wp_die('Unauthorized', 403);
}
}
});
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.