CVE-2020-20582

7.5 HIGH

📋 TL;DR

This SSRF vulnerability in MipCMS allows attackers to make the server send unauthorized requests to internal systems. Attackers can potentially access sensitive information from internal networks. All MipCMS 5.0.1 installations with the vulnerable endpoint exposed are affected.

💻 Affected Systems

Products:
  • MipCMS
Versions: 5.0.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires /ApiAdminDomainSettings.php endpoint to be accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of internal network services, data exfiltration from internal systems, and potential lateral movement to other servers.

🟠

Likely Case

Information disclosure from internal services, access to metadata services, and potential credential harvesting from internal APIs.

🟢

If Mitigated

Limited to port scanning of internal network or minimal information leakage if proper network segmentation exists.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authentication to access the admin endpoint. Public GitHub issue shows exploitation details.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Consider upgrading to newer MipCMS version if available or implementing workarounds.

🔧 Temporary Workarounds

Restrict Admin Access

all

Limit access to /ApiAdminDomainSettings.php endpoint to trusted IP addresses only.

# Apache: RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.
RewriteRule ^ApiAdminDomainSettings\.php$ - [F]
# Nginx: location ~ /ApiAdminDomainSettings\.php$ { allow 192.168.1.0/24; deny all; }

Input Validation

all

Add server-side validation to reject external URLs in domain settings parameters.

# PHP example in /ApiAdminDomainSettings.php
if (filter_var($input_url, FILTER_VALIDATE_URL) && parse_url($input_url, PHP_URL_HOST) !== $_SERVER['SERVER_NAME']) {
    die('External URLs not allowed');
}

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate the MipCMS server from internal sensitive systems.
  • Deploy a web application firewall (WAF) with SSRF protection rules to block malicious requests.

🔍 How to Verify

Check if Vulnerable:

Test if /ApiAdminDomainSettings.php accepts external URLs in parameters. Use curl: curl -X POST 'http://target/ApiAdminDomainSettings.php' -d 'domain=http://169.254.169.254'

Check Version:

Check MipCMS version in admin panel or look for version file in installation directory.

Verify Fix Applied:

Verify the endpoint rejects external URL requests and only accepts validated input.

📡 Detection & Monitoring

Log Indicators:

  • POST requests to /ApiAdminDomainSettings.php with external URLs in parameters
  • Unusual outbound connections from web server to internal IP ranges

Network Indicators:

  • Web server making requests to internal metadata services (169.254.169.254, 192.168.*)
  • Unexpected connections from web server to database or internal API endpoints

SIEM Query:

source="web_logs" AND uri="/ApiAdminDomainSettings.php" AND (param CONTAINS "http://" OR param CONTAINS "https://")

🔗 References

📤 Share & Export