CVE-2024-40543

8.8 HIGH

📋 TL;DR

PublicCMS v4.0.202302.e contains a Server-Side Request Forgery vulnerability in the UEditor component's image capture functionality. This allows attackers to make the server send arbitrary HTTP requests to internal systems. All administrators with access to the vulnerable endpoint are affected.

💻 Affected Systems

Products:
  • PublicCMS
Versions: v4.0.202302.e
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires admin access to the /admin/ueditor endpoint. Earlier versions may also be affected but not confirmed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access internal services, exfiltrate sensitive data, or pivot to other internal systems through the compromised server.

🟠

Likely Case

Information disclosure from internal services, potential data exfiltration, and reconnaissance of internal network.

🟢

If Mitigated

Limited to accessing only allowed internal resources with proper network segmentation and input validation.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is accessible via admin interface which may be exposed to internet.
🏢 Internal Only: MEDIUM - Requires admin access but could still be exploited by compromised accounts or insider threats.

🎯 Exploit Status

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

Exploitation requires admin authentication. The vulnerability is in the catchimage parameter which accepts arbitrary URLs.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Update to latest version beyond v4.0.202302.e

Vendor Advisory: https://gitee.com/sanluan/PublicCMS/issues/IAAITR

Restart Required: Yes

Instructions:

1. Backup current installation. 2. Download latest version from official repository. 3. Replace affected files. 4. Restart web server. 5. Verify fix.

🔧 Temporary Workarounds

Disable UEditor catchimage endpoint

all

Remove or restrict access to the vulnerable endpoint

# In web server config, add rule to block /admin/ueditor?action=catchimage
# Example for Apache: RewriteRule ^/admin/ueditor\?action=catchimage - [F]
# Example for Nginx: location ~* ^/admin/ueditor\?action=catchimage { return 403; }

Implement URL validation

all

Add input validation to restrict allowed URLs

# In application code, validate URL parameter against whitelist
# Example: if (!isAllowedDomain($url)) { return error; }

🧯 If You Can't Patch

  • Implement strict network segmentation to limit server's outbound connections
  • Deploy web application firewall with SSRF protection rules

🔍 How to Verify

Check if Vulnerable:

Test if /admin/ueditor?action=catchimage accepts arbitrary URLs. Check version in admin panel or via file inspection.

Check Version:

Check admin panel or inspect PublicCMS version files

Verify Fix Applied:

Attempt SSRF with test payloads after patch. Verify version is updated.

📡 Detection & Monitoring

Log Indicators:

  • Unusual outbound requests from server
  • Multiple requests to /admin/ueditor with catchimage action
  • Requests to internal IP addresses from web server

Network Indicators:

  • Web server making unexpected outbound HTTP requests
  • Traffic to internal services from web server

SIEM Query:

source="web_server" AND (url="/admin/ueditor?action=catchimage" OR dest_ip IN [RFC1918_ranges])

🔗 References

📤 Share & Export