CVE-2023-45603
📋 TL;DR
This vulnerability allows unauthenticated attackers to upload arbitrary files to WordPress sites using the User Submitted Posts plugin. Attackers can upload malicious files like PHP shells, leading to remote code execution. All WordPress sites with vulnerable versions of this plugin are affected.
💻 Affected Systems
- WordPress User Submitted Posts plugin
📦 What is this software?
User Submitted Posts by Plugin Planet
⚠️ Risk & Real-World Impact
Worst Case
Complete site takeover through remote code execution, data theft, defacement, and malware distribution.
Likely Case
Attackers upload web shells to gain persistent access, then escalate to full server compromise.
If Mitigated
File uploads are blocked or properly validated, preventing malicious file execution.
🎯 Exploit Status
Simple HTTP POST requests with malicious files can exploit this vulnerability without authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 20230902
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Go to Plugins → Installed Plugins. 3. Find 'User Submitted Posts'. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress repository and replace plugin files.
🔧 Temporary Workarounds
Disable file uploads in plugin
allConfigure plugin to disallow file uploads entirely
Web server file restriction
linuxBlock execution of uploaded files in uploads directory
Add to .htaccess in wp-content/uploads: <Files *.php> deny from all </Files>
🧯 If You Can't Patch
- Disable or remove the User Submitted Posts plugin immediately
- Implement WAF rules to block file uploads to the affected endpoints
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → User Submitted Posts version. If version is 20230902 or earlier, you are vulnerable.
Check Version:
wp plugin get user-submitted-posts --field=version
Verify Fix Applied:
Verify plugin version is newer than 20230902 and test file upload functionality with restricted file types.
📡 Detection & Monitoring
Log Indicators:
- Multiple file upload attempts to /wp-admin/admin-ajax.php with POST parameter 'usp-file-upload'
- Uploads of .php, .phtml, or other executable files to uploads directory
Network Indicators:
- HTTP POST requests to admin-ajax.php with file uploads containing unusual file types
- Traffic spikes to uploaded files in wp-content/uploads
SIEM Query:
source="web_access.log" AND (uri_path="/wp-admin/admin-ajax.php" AND method="POST" AND (form_data CONTAINS "usp-file-upload" OR user_agent CONTAINS "curl" OR user_agent CONTAINS "wget"))
🔗 References
- https://patchstack.com/database/vulnerability/user-submitted-posts/wordpress-user-submitted-posts-plugin-20230902-unauthenticated-arbitrary-file-upload-vulnerability?_s_id=cve
- https://patchstack.com/database/vulnerability/user-submitted-posts/wordpress-user-submitted-posts-plugin-20230902-unauthenticated-arbitrary-file-upload-vulnerability?_s_id=cve