CVE-2020-35939

7.5 HIGH

📋 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

Products:
  • WordPress Team Showcase plugin
Versions: All versions before 1.22.16
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user access; plugin must be active and accessible via AJAX endpoints.

📦 What is this software?

⚠️ 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.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

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

all

Remove 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

linux

Temporarily 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:*"

🔗 References

📤 Share & Export