CVE-2020-21585

9.8 CRITICAL

📋 TL;DR

CVE-2020-21585 is a critical vulnerability in emlog v6.0.0 that allows authenticated users to upload malicious PHP webshells via the zip plugin module. This affects all emlog v6.0.0 installations with the plugin upload feature enabled. Attackers can achieve remote code execution and potentially compromise the entire web server.

💻 Affected Systems

Products:
  • emlog
Versions: v6.0.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user access to plugin upload functionality. Default installations with admin access are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise with attacker gaining full control, data exfiltration, lateral movement to other systems, and persistent backdoor installation.

🟠

Likely Case

Webshell upload leading to website defacement, data theft, and use of server for malicious activities like spam or cryptocurrency mining.

🟢

If Mitigated

Limited impact with proper file upload restrictions and web application firewalls blocking malicious uploads.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated user access. Multiple public PoCs and exploit scripts are available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v6.0.1 and later

Vendor Advisory: https://github.com/emlog/emlog/issues/54

Restart Required: No

Instructions:

1. Backup your emlog installation and database. 2. Download the latest emlog version from the official repository. 3. Replace all files with the patched version. 4. Verify the plugin upload functionality now validates file types properly.

🔧 Temporary Workarounds

Disable Plugin Upload

all

Temporarily disable the plugin upload functionality in emlog to prevent exploitation.

Modify emlog configuration to remove plugin upload permissions or disable the feature in admin panel

Web Server File Restriction

linux

Configure web server to block execution of PHP files in upload directories.

For Apache: Add 'php_flag engine off' to .htaccess in upload directory
For Nginx: Add 'location ~ \.php$ { deny all; }' to upload directory config

🧯 If You Can't Patch

  • Implement strict file upload validation at the web application level
  • Deploy a web application firewall (WAF) with file upload protection rules

🔍 How to Verify

Check if Vulnerable:

Check if running emlog v6.0.0 by examining version files or admin panel. Test if plugin upload accepts .zip files containing .php files.

Check Version:

Check content/admin/views/about.php or similar version files for version string

Verify Fix Applied:

After patching, attempt to upload a test .zip file containing a .php file - it should be rejected with proper validation error.

📡 Detection & Monitoring

Log Indicators:

  • Unusual .zip file uploads to plugin directory
  • Multiple failed upload attempts
  • Execution of unexpected PHP files from upload directories

Network Indicators:

  • HTTP POST requests to plugin upload endpoints with .zip files
  • Unusual outbound connections from web server after upload

SIEM Query:

source="web_logs" AND (uri_path="/admin/plugin.php" OR uri_path LIKE "%/upload/%") AND method="POST" AND file_ext=".zip"

🔗 References

📤 Share & Export