CVE-2023-28667
📋 TL;DR
This vulnerability allows unauthenticated attackers to execute arbitrary PHP code on WordPress sites running the vulnerable Lead Generated plugin. Attackers can exploit insecure deserialization in the tve_api_form_submit action to achieve remote code execution. All WordPress sites using Lead Generated plugin version 1.23 or earlier are affected.
💻 Affected Systems
- Lead Generated WordPress Plugin
📦 What is this software?
Lead Generated by Leadgenerated
⚠️ Risk & Real-World Impact
Worst Case
Complete system compromise leading to website defacement, data theft, malware distribution, or ransomware deployment.
Likely Case
Remote code execution allowing attackers to create backdoors, steal sensitive data, or install cryptocurrency miners.
If Mitigated
Attack blocked at WAF level or plugin disabled, preventing exploitation but potentially breaking functionality.
🎯 Exploit Status
Exploitation requires a POP chain, but public proof-of-concept exists. Attackers can exploit without authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: > 1.23
Vendor Advisory: https://www.tenable.com/security/research/tra-2023-7
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins. 3. Find Lead Generated plugin. 4. Update to latest version. 5. Verify update completed successfully.
🔧 Temporary Workarounds
Disable vulnerable plugin
allTemporarily disable the Lead Generated plugin until patched
wp plugin deactivate lead-generated
WAF rule blocking
allBlock requests containing tve_labels parameter in tve_api_form_submit action
🧯 If You Can't Patch
- Disable the Lead Generated plugin immediately
- Implement web application firewall rules to block exploitation attempts
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel > Plugins > Lead Generated version number
Check Version:
wp plugin list --name=lead-generated --field=version
Verify Fix Applied:
Confirm plugin version is greater than 1.23 in WordPress admin
📡 Detection & Monitoring
Log Indicators:
- POST requests to /wp-admin/admin-ajax.php with tve_labels parameter
- Unusual PHP error logs mentioning unserialize()
Network Indicators:
- HTTP POST requests containing serialized PHP objects in tve_labels parameter
SIEM Query:
source="web_logs" AND uri="/wp-admin/admin-ajax.php" AND method="POST" AND params CONTAINS "tve_labels"