CVE-2020-10806

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote attackers to upload and execute arbitrary PHP code on eZ Publish/eZ Platform servers. Attackers can achieve full server compromise by uploading malicious PHP files through file upload functionality. All eZ Publish/eZ Platform installations with vulnerable versions are affected unless specifically configured to restrict PHP execution.

💻 Affected Systems

Products:
  • eZ Publish Kernel
  • eZ Publish Legacy
  • eZ Platform
Versions: eZ Publish Kernel: before 5.4.14.1, 6.x before 6.13.6.2, 7.x before 7.5.6.2; eZ Publish Legacy: before 5.4.14.1, 2017 before 2017.12.7.2, 2019 before 2019.03.4.2
Operating Systems: All operating systems running affected eZ software
Default Config Vulnerable: ⚠️ Yes
Notes: Only mitigated if vhost configuration explicitly restricts execution to app.php. Default configurations are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server takeover with attacker gaining full control over the web server, allowing data theft, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Remote code execution leading to website defacement, data exfiltration, or deployment of malware/ransomware on the server.

🟢

If Mitigated

No impact if proper vhost configuration restricts execution to app.php only or if file uploads are disabled.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires file upload capability but no authentication. Simple PHP file upload leads to RCE.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: eZ Publish Kernel: 5.4.14.1, 6.13.6.2, 7.5.6.2; eZ Publish Legacy: 5.4.14.1, 2017.12.7.2, 2019.03.4.2

Vendor Advisory: https://ezplatform.com/security-advisories/ezsa-2020-001-remote-code-execution-in-file-uploads

Restart Required: No

Instructions:

1. Identify your eZ Publish/eZ Platform version. 2. Update to the patched version via composer update or package manager. 3. Clear cache and verify the update.

🔧 Temporary Workarounds

Restrict PHP execution in vhost configuration

all

Configure web server to only allow execution of app.php, blocking direct PHP file execution

# Apache example: <FilesMatch "\.php$">
#   Require all denied
# </FilesMatch>
# <Files "app.php">
#   Require all granted
# </Files>
# Nginx example: location ~ \.php$ {
#   deny all;
# }
# location = /app.php {
#   fastcgi_pass ...
# }

Disable file upload functionality

all

Temporarily disable all file upload features in eZ Publish configuration

# Edit ezpublish.yml or similar config file to disable upload handlers

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block PHP file uploads and execution attempts
  • Restrict network access to eZ Publish administration interfaces and file upload endpoints

🔍 How to Verify

Check if Vulnerable:

Check eZ Publish version via admin panel or by examining composer.json/installed.json files

Check Version:

php bin/console ezplatform:version (for eZ Platform) or check composer.lock

Verify Fix Applied:

Verify version is updated to patched version and test file upload functionality with PHP files

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads with .php extensions
  • POST requests to file upload endpoints with PHP content
  • Execution of uploaded files via direct URL access

Network Indicators:

  • HTTP requests uploading .php files to eZ endpoints
  • Subsequent requests to uploaded PHP files

SIEM Query:

source="web_access_logs" AND (uri_path="*upload*" AND file_extension=".php") OR (uri_path="*.php" AND referrer="*upload*")

🔗 References

📤 Share & Export