CVE-2022-30117

9.1 CRITICAL

📋 TL;DR

This vulnerability in Concrete CMS allows authenticated attackers to perform directory traversal via the file upload endpoint, potentially leading to arbitrary file deletion. It affects Concrete CMS versions 8.5.7 and below, and versions 9.0 through 9.0.2. The exploit requires authenticated access but can result in denial of service or system compromise.

💻 Affected Systems

Products:
  • Concrete CMS
Versions: 8.5.7 and below, 9.0 through 9.0.2
Operating Systems: All operating systems running Concrete CMS
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations of affected versions are vulnerable. The vulnerability requires authenticated access but does not require administrative privileges.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Authenticated attackers could delete critical system files, causing complete system unavailability, data loss, or potential privilege escalation by removing security controls.

🟠

Likely Case

Authenticated users with malicious intent could delete application files, causing service disruption, data loss, or defacement of the CMS installation.

🟢

If Mitigated

With proper access controls and file system permissions, impact would be limited to files accessible by the web server user, potentially causing application errors but not system compromise.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit details are publicly available on HackerOne. The vulnerability requires authenticated access but exploitation is straightforward once authenticated.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 8.5.8 for Concrete 8.x, 9.0.3 for Concrete 9.x

Vendor Advisory: https://documentation.concretecms.org/developers/introduction/version-history/858-release-notes

Restart Required: No

Instructions:

1. Backup your Concrete CMS installation and database. 2. Update to Concrete CMS 8.5.8 if using 8.x series. 3. Update to Concrete CMS 9.0.3 if using 9.x series. 4. Verify the update completed successfully.

🔧 Temporary Workarounds

Restrict access to upload endpoint

all

Temporarily restrict access to the vulnerable endpoint using web server configuration or application firewall rules.

# Apache: RewriteRule ^/index\.php/ccm/system/file/upload - [F]
# Nginx: location ~ ^/index\.php/ccm/system/file/upload { return 403; }

Implement file permission restrictions

all

Set strict file system permissions to limit what files the web server user can delete.

# Linux: chmod 755 /path/to/concretecms
# Windows: Use ACLs to restrict web server user permissions

🧯 If You Can't Patch

  • Implement strict access controls to limit which users can access the file upload functionality.
  • Deploy a web application firewall (WAF) with rules to detect and block directory traversal attempts.

🔍 How to Verify

Check if Vulnerable:

Check your Concrete CMS version. If it's 8.5.7 or below, or between 9.0 and 9.0.2, you are vulnerable.

Check Version:

# Check Concrete CMS version via command line: grep -r "APP_VERSION" /path/to/concretecms/concrete/config/app.php | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+"

Verify Fix Applied:

After updating, verify the version is 8.5.8 or higher for 8.x series, or 9.0.3 or higher for 9.x series.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed file upload attempts with directory traversal patterns (../)
  • Unusual file deletion events in application logs
  • Errors related to missing files in system logs

Network Indicators:

  • HTTP POST requests to /index.php/ccm/system/file/upload containing directory traversal sequences
  • Unusual patterns of file upload requests from authenticated users

SIEM Query:

source="web_server_logs" AND (uri_path="/index.php/ccm/system/file/upload" AND (http_method="POST" AND (content="../" OR content="..\\")))

🔗 References

📤 Share & Export