CVE-2018-18934

9.8 CRITICAL

📋 TL;DR

This vulnerability in PopojiCMS v2.0.1 allows remote attackers to upload and execute arbitrary PHP code via a ZIP file through the admin_component.php interface. The attack can be performed by unauthenticated users and is also exploitable via Cross-Site Request Forgery (CSRF). All PopojiCMS v2.0.1 installations with the vulnerable component enabled are affected.

💻 Affected Systems

Products:
  • PopojiCMS
Versions: v2.0.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerable component is part of the admin interface which is typically accessible to authenticated users, but CSRF makes exploitation easier.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise with remote code execution leading to data theft, defacement, backdoor installation, and lateral movement within the network.

🟠

Likely Case

Webshell deployment allowing persistent access, data exfiltration, and potential ransomware deployment on the web server.

🟢

If Mitigated

Attack blocked at perimeter with proper input validation, file upload restrictions, and authentication controls in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation is straightforward using ZIP files containing PHP code. The CSRF vector allows exploitation even if the attacker lacks direct access to the admin interface.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v2.0.2 or later

Vendor Advisory: https://github.com/PopojiCMS/PopojiCMS/issues/12

Restart Required: No

Instructions:

1. Download the latest version from the official PopojiCMS repository. 2. Backup your current installation. 3. Replace the vulnerable files with patched versions. 4. Verify the fix by testing the upload functionality.

🔧 Temporary Workarounds

Disable component upload functionality

linux

Temporarily disable or restrict access to the vulnerable admin_component.php file.

mv /path/to/po-admin/route.php /path/to/po-admin/route.php.disabled
chmod 000 /path/to/po-admin/route.php

Implement file upload restrictions

all

Configure web server to block ZIP file uploads to the vulnerable endpoint.

# Add to .htaccess for Apache: 
<Files "route.php">
    SetEnvIf Request_URI ".*" block_zip
    Deny from env=block_zip
</Files>
# Nginx config:
location ~* \.php$ {
    if ($request_uri ~* "fupload") {
        return 403;
    }
}

🧯 If You Can't Patch

  • Implement strict WAF rules to block requests containing ZIP files to the vulnerable endpoint.
  • Restrict network access to the admin interface using IP whitelisting or VPN.

🔍 How to Verify

Check if Vulnerable:

Check if your PopojiCMS version is 2.0.1 and if the po-admin/route.php endpoint accepts ZIP file uploads via the fupload parameter.

Check Version:

grep -r "version" /path/to/popojicms/ | grep -i "2.0.1"

Verify Fix Applied:

Attempt to upload a ZIP file containing PHP code to the vulnerable endpoint; it should be rejected or the PHP code should not execute.

📡 Detection & Monitoring

Log Indicators:

  • POST requests to po-admin/route.php with mod=component&act=addnew
  • File uploads with .zip extension to admin endpoints
  • Execution of unexpected PHP files in upload directories

Network Indicators:

  • Unusual outbound connections from web server following ZIP file uploads
  • HTTP requests with ZIP file content to admin endpoints

SIEM Query:

source="web_logs" AND (uri="/po-admin/route.php" AND (params="mod=component&act=addnew" OR file_extension=".zip"))

🔗 References

📤 Share & Export