CVE-2025-64382
Executive Summary
CVE-2025-64382 is a Missing Authorization vulnerability in the WordPress plugin Order Export & Order Import for WooCommerce by WebToffee, affecting versions up to and including 2.6.7. This flaw allows unauthenticated attackers to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to order export/import functionality. The vulnerability has a CVSS score of 4.3 (Medium) and a low EPSS score of 0.0%, indicating limited active exploitation at the time of analysis. No public proof-of-concept (PoC) or exploit code has been released, and no official patch is available from the vendor.
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 who have installed the plugin directly from the WordPress dashboard or via manual upload are at risk. The lack of a patch from the vendor means that supply chain security relies on users manually applying workarounds or disabling the plugin until a fix is released.
CVSS Breakdown & Threat Level
- CVSS Score: 4.3 (Medium)
- 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): None (N) – No user action required.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure possible.
- Integrity (I): None (N) – No data modification.
- Availability (A): None (N) – No denial of service.
Threat Level: Medium. While the CVSS score is moderate, the lack of required privileges and the potential for unauthorized access to sensitive order data (e.g., customer details, order logs) elevates the risk for WooCommerce stores.
Deep Dive & Mechanics
The vulnerability resides in the WordPress plugin's AJAX handlers or REST API endpoints responsible for order export and import operations. The plugin fails to properly enforce capability checks (e.g., manage_woocommerce or edit_shop_orders) before executing sensitive functions. This allows unauthenticated attackers to trigger actions such as:
- Exporting order data (CSV/XML) containing customer PII (names, addresses, emails).
- Importing malicious order data that could corrupt the database or inject unauthorized content.
- Accessing administrative logs or configuration settings related to order processing.
The root cause is a missing call to current_user_can() or similar authorization checks in the plugin's core functions, specifically in files like includes/class-import-export.php or admin/class-admin-ajax.php.
Vulnerable vs. Patched Code
Since no official patch exists, the following comparison is based on expected secure coding practices.
Vulnerable Code (Example from version 2.6.7):
add_action('wp_ajax_nopriv_export_orders', 'handle_export_orders');
function handle_export_orders() {
// No capability check
$orders = get_all_orders();
export_to_csv($orders);
}
Patched Code (Expected fix):
add_action('wp_ajax_export_orders', 'handle_export_orders');
function handle_export_orders() {
if (!current_user_can('manage_woocommerce')) {
wp_die('Unauthorized', 403);
}
$orders = get_all_orders();
export_to_csv($orders);
}
The vulnerable code uses wp_ajax_nopriv_ (allowing unauthenticated access) and lacks any permission check. The patched version uses wp_ajax_ (authenticated only) and adds a capability check.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site with WooCommerce and the vulnerable plugin (version <= 2.6.7) installed.
- Network access to the target site.
Exploitation Steps:
- Identify the vulnerable endpoint by scanning for AJAX actions. Common actions include
export_orders,import_orders, orget_order_logs. - Send a crafted HTTP POST request to
/wp-admin/admin-ajax.phpwith the action parameter set to the vulnerable function. - Example using
curl:curl -X POST https://target.com/wp-admin/admin-ajax.php \ -d "action=export_orders&format=csv" - If successful, the server will return order data without authentication.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team (Defensive)
Detection Steps:
- Monitor for unusual AJAX requests to
/wp-admin/admin-ajax.phpfrom unauthenticated users. - Look for spikes in order export/import activity outside normal business hours.
- Check web server logs for
action=export_ordersor similar parameters in POST requests.
Mitigation:
- Disable the plugin immediately if no business-critical dependency exists.
- Implement a Web Application Firewall (WAF) rule to block unauthenticated access to known vulnerable endpoints.
- Apply a virtual patch by adding the following code to the theme's
functions.php:add_action('init', function() { if (defined('DOING_AJAX') && DOING_AJAX) { $action = $_POST['action'] ?? ''; $vulnerable_actions = ['export_orders', 'import_orders']; if (in_array($action, $vulnerable_actions) && !is_user_logged_in()) { wp_die('Unauthorized', 403); } } });
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/wp-admin/admin-ajax.phpwithaction=export_ordersoraction=import_ordersfrom unauthenticated IPs. - Unusual outbound data transfers containing CSV or XML files with order data.
- POST requests to
- File IOCs:
- Unexpected CSV/XML files in the WordPress uploads directory (
/wp-content/uploads/). - Modified plugin files (e.g.,
order-import-export-for-woocommerce/includes/class-import-export.php).
- Unexpected CSV/XML files in the WordPress uploads directory (
- Log IOCs:
- Repeated 200 OK responses to AJAX requests from unauthenticated users.
- Error logs showing
wp_dieor403responses if a virtual patch is applied.
Detection Engineering
YARA Rule
rule CVE_2025_64382_WordPress_Plugin {
meta:
description = "Detects vulnerable Order Export & Import for WooCommerce plugin files"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-64382"
strings:
$vuln_func = "wp_ajax_nopriv_export_orders" nocase
$vuln_func2 = "wp_ajax_nopriv_import_orders" nocase
$no_cap = "current_user_can" nocase
condition:
($vuln_func or $vuln_func2) and not $no_cap
}
Sigma Rule
title: CVE-2025-64382 - Unauthenticated AJAX Access to Order Export/Import
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects unauthenticated POST requests to WordPress AJAX endpoints for order export/import
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains|all:
- 'action=export_orders'
- 'action=import_orders'
condition: selection
falsepositives:
- Legitimate authenticated users (check for cookie presence)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-64382 - Unauthenticated AJAX Order Export/Import Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=export_orders"; http_client_body;
content:"action=import_orders"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate Action: Disable the plugin if not essential for business operations.
- Virtual Patch: Apply the code snippet provided in the Blue Team section to block unauthenticated access.
- Monitor: Review web server logs for signs of exploitation and rotate any exposed API keys or secrets.
- Update: Watch the WordPress plugin repository for an official patch. When available, update to the patched version immediately.
- Hardening: Ensure all WordPress plugins are kept up-to-date and that the principle of least privilege is applied to user roles.
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.