CVE-2020-35939
📋 TL;DR
This CVE describes a PHP object injection vulnerability in the Team Showcase WordPress plugin. Remote authenticated attackers can execute arbitrary code by sending specially crafted serialized objects via AJAX requests. WordPress sites using vulnerable versions of the Team Showcase plugin are affected.
💻 Affected Systems
- WordPress Team Showcase plugin
📦 What is this software?
Post Grid by Pickplugins
Team Showcase by Pickplugins
⚠️ Risk & Real-World Impact
Worst Case
Complete server compromise leading to data theft, website defacement, malware installation, or ransomware deployment.
Likely Case
Unauthorized administrative access, plugin/theme modification, backdoor installation, or data exfiltration.
If Mitigated
Limited impact if proper input validation and output encoding are implemented, though some data exposure may still occur.
🎯 Exploit Status
Exploitation requires authenticated user access; proof-of-concept code is publicly available.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.22.16
Vendor Advisory: https://wordpress.org/plugins/team-showcase/#developers
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find Team Showcase plugin. 4. Click 'Update Now' if available. 5. Alternatively, download version 1.22.16+ from WordPress repository and replace plugin files.
🔧 Temporary Workarounds
Disable vulnerable AJAX endpoint
allRemove or restrict access to the team_import_xml_layouts AJAX action
Add to theme's functions.php or custom plugin: remove_action('wp_ajax_team_import_xml_layouts', 'team_import_xml_layouts'); remove_action('wp_ajax_nopriv_team_import_xml_layouts', 'team_import_xml_layouts');
Disable plugin
linuxTemporarily deactivate Team Showcase plugin until patched
wp plugin deactivate team-showcase
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block requests containing serialized PHP objects
- Restrict plugin access to trusted IP addresses only using .htaccess or server configuration
🔍 How to Verify
Check if Vulnerable:
Check plugin version in WordPress admin panel under Plugins > Installed Plugins, or examine /wp-content/plugins/team-showcase/readme.txt for version number.
Check Version:
wp plugin get team-showcase --field=version
Verify Fix Applied:
Confirm plugin version is 1.22.16 or higher, and test AJAX endpoint with safe payload to ensure proper input validation.
📡 Detection & Monitoring
Log Indicators:
- POST requests to /wp-admin/admin-ajax.php with action=team_import_xml_layouts
- Unusual PHP object unserialization errors in PHP error logs
- Unexpected file writes or process execution from web user
Network Indicators:
- HTTP requests containing serialized PHP objects (O: syntax) in POST data
- Traffic to admin-ajax.php with unusual source parameters
SIEM Query:
source="web_logs" AND uri="/wp-admin/admin-ajax.php" AND post_data="*team_import_xml_layouts*" AND post_data="*O:*"