CVE-2024-3922
📋 TL;DR
The Dokan Pro WordPress plugin contains an unauthenticated SQL injection vulnerability in the 'code' parameter. Attackers can exploit this to execute arbitrary SQL commands and extract sensitive data from the database. All WordPress sites using Dokan Pro version 3.10.3 or earlier are affected.
💻 Affected Systems
- Dokan Pro WordPress Plugin
📦 What is this software?
Dokan by Dokan
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise including user credentials, payment information, and sensitive business data, potentially leading to full site takeover.
Likely Case
Data exfiltration of user information, plugin settings, and potentially WordPress configuration details.
If Mitigated
Limited impact if database permissions are restricted and web application firewall blocks SQL injection patterns.
🎯 Exploit Status
SQL injection via GET/POST parameters requires minimal technical skill to exploit.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.10.4 or later
Vendor Advisory: https://dokan.co/docs/wordpress/changelog/
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find Dokan Pro and click 'Update Now'. 4. Verify version is 3.10.4 or higher.
🔧 Temporary Workarounds
Web Application Firewall Rule
allBlock SQL injection patterns targeting the 'code' parameter
Temporary Plugin Deactivation
linuxDisable Dokan Pro plugin until patched
wp plugin deactivate dokan-pro
🧯 If You Can't Patch
- Implement strict input validation for all 'code' parameter inputs
- Restrict database user permissions to SELECT only where possible
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel > Plugins > Dokan Pro version number
Check Version:
wp plugin list --name=dokan-pro --field=version
Verify Fix Applied:
Confirm Dokan Pro version is 3.10.4 or higher in WordPress admin
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL errors in web server logs
- Multiple requests with 'code' parameter containing SQL keywords
Network Indicators:
- HTTP requests with SQL injection payloads in 'code' parameter
SIEM Query:
web_access_logs WHERE url_query CONTAINS 'code=' AND (url_query CONTAINS 'UNION' OR url_query CONTAINS 'SELECT' OR url_query CONTAINS 'OR 1=1')