CVE-2025-9216

8.8 HIGH

📋 TL;DR

The StoreEngine WordPress plugin up to version 1.5.0 has an arbitrary file upload vulnerability in its import function. Authenticated attackers with Subscriber-level access or higher can upload malicious files, potentially leading to remote code execution. This affects all WordPress sites using vulnerable versions of the StoreEngine plugin.

💻 Affected Systems

Products:
  • StoreEngine WordPress Plugin
Versions: All versions up to and including 1.5.0
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires at least Subscriber-level WordPress user account. Plugin must be active and CSV import functionality accessible.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise via remote code execution, allowing attackers to install backdoors, steal data, deface websites, or pivot to internal networks.

🟠

Likely Case

Website defacement, data theft, or installation of cryptocurrency miners or malware on the server.

🟢

If Mitigated

Limited impact if file uploads are restricted at web server level or if proper file type validation is implemented elsewhere.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit requires authenticated access but only at Subscriber level, which is easy to obtain. Multiple public references and proof-of-concept code available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.5.1

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3360097/storeengine/trunk/addons/csv/ajax/import.php

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find StoreEngine plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download version 1.5.1+ from WordPress repository and replace plugin files.

🔧 Temporary Workarounds

Disable StoreEngine Plugin

all

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate storeengine

Restrict File Uploads via .htaccess

linux

Block PHP and other executable file uploads to plugin directories

<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps|php8|cgi|pl|asp|aspx|jsp|sh)">\n  Order Allow,Deny\n  Deny from all\n</FilesMatch>

🧯 If You Can't Patch

  • Remove Subscriber role access to plugin functionality via custom code or role management plugins
  • Implement web application firewall rules to block suspicious file uploads to /wp-content/plugins/storeengine/ paths

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for StoreEngine version. If version is 1.5.0 or lower, you are vulnerable.

Check Version:

wp plugin get storeengine --field=version

Verify Fix Applied:

After update, verify StoreEngine plugin version shows 1.5.1 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads to /wp-content/plugins/storeengine/addons/csv/ajax/import.php
  • POST requests to import.php with file uploads from non-admin users
  • Execution of unexpected PHP files in plugin directories

Network Indicators:

  • HTTP POST requests to import.php endpoint from unexpected sources
  • Upload of files with double extensions (.php.jpg, .php.png)

SIEM Query:

source="web_server" AND (url="*import.php*" AND method="POST" AND user_agent NOT IN ("admin_user_agents") AND file_upload="true")

🔗 References

📤 Share & Export