CVE-2020-22151

9.8 CRITICAL

📋 TL;DR

CVE-2020-22151 is a critical remote code execution vulnerability in Fuel-CMS that allows attackers to upload malicious zip files containing PHP code. This affects all systems running Fuel-CMS version 1.4.6 with the vulnerable upload function exposed. Attackers can gain complete control of affected web servers.

💻 Affected Systems

Products:
  • Fuel-CMS
Versions: Version 1.4.6 specifically
Operating Systems: All operating systems running Fuel-CMS
Default Config Vulnerable: ⚠️ Yes
Notes: Affects default installations with the upload functionality enabled. Earlier versions may also be vulnerable but 1.4.6 is confirmed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise allowing data theft, malware deployment, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Webshell deployment leading to data exfiltration, defacement, and credential harvesting from the compromised server.

🟢

If Mitigated

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

🌐 Internet-Facing: HIGH - Directly exploitable via HTTP requests without authentication to publicly accessible Fuel-CMS instances.
🏢 Internal Only: MEDIUM - Still exploitable by internal attackers or compromised internal systems, but requires network access.

🎯 Exploit Status

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

Exploit requires crafting a malicious zip file with PHP code and uploading it via the vulnerable assets parameter. No authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 1.4.7 or later

Vendor Advisory: https://github.com/daylightstudio/FUEL-CMS/issues/551

Restart Required: No

Instructions:

1. Backup your current installation. 2. Download Fuel-CMS 1.4.7 or later from GitHub. 3. Replace vulnerable files with patched versions. 4. Verify upload functionality is properly secured.

🔧 Temporary Workarounds

Disable File Uploads

all

Temporarily disable the vulnerable upload functionality in Fuel-CMS configuration

Edit fuel/application/config/config.php and set 'allow_upload' to false

Web Application Firewall Rule

all

Block requests containing zip files to the vulnerable upload endpoint

Add WAF rule: Block POST requests to */fuel/assets/upload* containing .zip files

🧯 If You Can't Patch

  • Implement strict file upload validation rejecting zip files entirely
  • Isolate Fuel-CMS instance behind reverse proxy with strict content filtering

🔍 How to Verify

Check if Vulnerable:

Check if running Fuel-CMS version 1.4.6 by examining the fuel/application/config/version.php file

Check Version:

cat fuel/application/config/version.php | grep 'fuel_version'

Verify Fix Applied:

Verify version is 1.4.7 or higher and test upload functionality with safe test files

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed upload attempts
  • POST requests to /fuel/assets/upload with zip files
  • Unusual file creation in upload directories

Network Indicators:

  • HTTP POST requests with zip file content to Fuel-CMS upload endpoints
  • Outbound connections from web server to unknown IPs post-upload

SIEM Query:

source="web_logs" AND (uri_path="/fuel/assets/upload" AND method="POST" AND file_extension="zip")

🔗 References

📤 Share & Export