CVE-2022-28585

9.8 CRITICAL

📋 TL;DR

EmpireCMS 7.5 contains a SQL injection vulnerability in AdClass.php that allows attackers to execute arbitrary SQL commands. This affects all EmpireCMS 7.5 installations, potentially compromising the underlying database and web application. Attackers can exploit this to steal sensitive data, modify content, or gain unauthorized access.

💻 Affected Systems

Products:
  • EmpireCMS
Versions: 7.5
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All EmpireCMS 7.5 installations are vulnerable regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, website defacement, privilege escalation to admin, and potential server takeover via SQL injection to RCE chaining.

🟠

Likely Case

Database information disclosure including user credentials, sensitive content, and configuration data, potentially enabling further attacks.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and WAF rules blocking SQL injection patterns.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

SQL injection vulnerabilities in popular CMS systems are frequently weaponized in automated attacks.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.5 with security patch or upgrade to newer version

Vendor Advisory: https://github.com/leadscloud/EmpireCMS/issues/5

Restart Required: No

Instructions:

1. Download the latest EmpireCMS version or security patch. 2. Backup your current installation. 3. Replace the vulnerable AdClass.php file with the patched version. 4. Verify the fix by testing the affected functionality.

🔧 Temporary Workarounds

WAF Rule Implementation

all

Deploy web application firewall rules to block SQL injection patterns targeting AdClass.php endpoints.

# Example ModSecurity rule: SecRule ARGS "@detectSQLi" "id:1001,phase:2,deny,status:403,msg:'SQL Injection Attempt'"
# Cloudflare WAF: Enable SQL Injection protection in Security settings

Input Validation Filter

all

Implement server-side input validation for parameters passed to AdClass.php functions.

# PHP example: filter_input(INPUT_GET, 'param', FILTER_SANITIZE_STRING);
# Validate and sanitize all user inputs before processing

🧯 If You Can't Patch

  • Restrict access to EmpireCMS admin interface to trusted IP addresses only using .htaccess or firewall rules.
  • Disable or remove the AdClass.php file if its functionality is not essential for your website operation.

🔍 How to Verify

Check if Vulnerable:

Check if EmpireCMS version is 7.5 by examining the /e/install/data/install.sql file or admin panel version display.

Check Version:

grep -r "EmpireCMS" /path/to/empirecms/ | grep "7.5"

Verify Fix Applied:

Test the AdClass.php functionality with SQL injection payloads (e.g., ' OR '1'='1) and verify they are properly sanitized or rejected.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL error messages in web server logs
  • Multiple failed login attempts or SQL syntax errors from single IPs
  • Requests to AdClass.php with suspicious parameters containing SQL keywords

Network Indicators:

  • HTTP requests with SQL injection payloads in query parameters
  • Unusual database connection patterns from web server

SIEM Query:

source="web_logs" AND (url="*AdClass.php*" AND (param="*' OR*" OR param="*UNION*" OR param="*SELECT*"))

🔗 References

📤 Share & Export