CVE-2024-10820

9.8 CRITICAL

📋 TL;DR

The WooCommerce Upload Files plugin for WordPress has a critical vulnerability that allows unauthenticated attackers to upload arbitrary files to the server due to missing file type validation. This can lead to remote code execution, potentially giving attackers full control over affected websites. All WordPress sites using this plugin up to version 84.3 are affected.

💻 Affected Systems

Products:
  • WooCommerce Upload Files WordPress Plugin
Versions: All versions up to and including 84.3
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with WooCommerce and the vulnerable plugin installed. No special configuration needed for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise leading to data theft, ransomware deployment, website defacement, and use as a pivot point for attacking other systems.

🟠

Likely Case

Attackers upload web shells to gain persistent access, install malware, steal sensitive data, or use the server for malicious activities like cryptocurrency mining.

🟢

If Mitigated

File uploads are blocked or properly validated, preventing malicious file execution while maintaining legitimate upload functionality.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Simple HTTP POST requests with malicious files can exploit this vulnerability. No authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 84.4 or later

Vendor Advisory: https://codecanyon.net/item/woocommerce-upload-files/11442983

Restart Required: No

Instructions:

1. Log into WordPress admin panel
2. Go to Plugins → Installed Plugins
3. Find 'WooCommerce Upload Files'
4. Click 'Update Now' if update available
5. If no update available, deactivate and remove plugin immediately

🔧 Temporary Workarounds

Disable Plugin

all

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate woocommerce-upload-files

Web Server File Upload Restriction

linux

Configure web server to block uploads to plugin directory

# For Apache: Add to .htaccess in plugin directory
<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps|php-s|pht|phar)">
    Order Allow,Deny
    Deny from all
</FilesMatch>
# For Nginx: Add to server block
location ~* /wp-content/plugins/woocommerce-upload-files/.*\.(php|phtml|php3|php4|php5|php7|phps|php-s|pht|phar)$ {
    deny all;
}

🧯 If You Can't Patch

  • Immediately deactivate and remove the plugin from all WordPress installations
  • Implement web application firewall (WAF) rules to block file uploads to the vulnerable endpoint

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for 'WooCommerce Upload Files' version 84.3 or earlier

Check Version:

wp plugin get woocommerce-upload-files --field=version

Verify Fix Applied:

Verify plugin version is 84.4 or later, or confirm plugin is not installed/active

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-content/plugins/woocommerce-upload-files/upload.php
  • Multiple file upload attempts with PHP/executable extensions
  • Files with suspicious names (shell.php, cmd.php, etc.) appearing in upload directories

Network Indicators:

  • HTTP POST requests to upload endpoints from unexpected IPs
  • Traffic patterns showing file uploads followed by execution attempts

SIEM Query:

source="web_server" AND (uri_path="/wp-content/plugins/woocommerce-upload-files/upload.php" OR uri_path LIKE "%/woocommerce-upload-files/%") AND http_method="POST"

🔗 References

📤 Share & Export