CVE-2024-10962
📋 TL;DR
The WPvivid WordPress plugin is vulnerable to PHP object injection via insecure deserialization in staging site functions. Unauthenticated attackers can exploit this to execute arbitrary code if a suitable POP chain exists in other installed plugins/themes. All WordPress sites using WPvivid plugin versions up to 0.9.107 are affected.
💻 Affected Systems
- Migration, Backup, Staging – WPvivid WordPress plugin
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution leading to complete site compromise, data theft, and server takeover if a POP chain exists in installed components.
Likely Case
Limited impact due to no known POP chain in WPvivid itself, but potential for file deletion or data exposure if vulnerable plugins/themes are present.
If Mitigated
No impact if plugin is patched or removed, or if no vulnerable POP chain components are installed.
🎯 Exploit Status
Exploitation requires administrator to create staging site and presence of POP chain in other installed components. No known public exploit code exists.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.9.108 and later
Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3186082/
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find WPvivid plugin and click 'Update Now'. 4. Verify version is 0.9.108 or higher.
🔧 Temporary Workarounds
Disable WPvivid plugin
allTemporarily deactivate the vulnerable plugin until patched
wp plugin deactivate wpvivid-backuprestore
Remove staging functionality
allDisable staging site creation in WPvivid settings
🧯 If You Can't Patch
- Disable or remove the WPvivid plugin entirely
- Implement web application firewall rules to block deserialization attempts
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel → Plugins → Installed Plugins for WPvivid version
Check Version:
wp plugin get wpvivid-backuprestore --field=version
Verify Fix Applied:
Confirm WPvivid plugin version is 0.9.108 or higher in WordPress admin
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to wp-admin/admin-ajax.php with serialized data
- Unexpected staging site creation events
- PHP errors related to unserialize() or object injection
Network Indicators:
- HTTP requests containing serialized PHP objects in parameters
- Requests to staging-related endpoints from unexpected sources
SIEM Query:
source="wordpress.log" AND ("unserialize" OR "replace_row_data" OR "replace_serialize_data")
🔗 References
- https://plugins.trac.wordpress.org/browser/wpvivid-backuprestore/trunk/includes/staging/class-wpvivid-staging-copy-db-ex.php#L1104
- https://plugins.trac.wordpress.org/browser/wpvivid-backuprestore/trunk/includes/staging/class-wpvivid-staging-copy-db-ex.php#L1120
- https://plugins.trac.wordpress.org/changeset/3186082/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/9b4eba78-29f2-4357-ab3c-7bc3c20e0e75?source=cve