CVE-2023-39805

9.8 CRITICAL

📋 TL;DR

CVE-2023-39805 is a SQL injection vulnerability in iCMS v7.0.16 that allows attackers to execute arbitrary SQL commands via the where parameter in admincp.php. This affects all users running the vulnerable version of iCMS, potentially compromising the entire database and application.

💻 Affected Systems

Products:
  • iCMS
Versions: v7.0.16
Operating Systems: All operating systems running iCMS
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation of iCMS v7.0.16. No special configuration is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data manipulation, authentication bypass, and potential remote code execution via database functions.

🟠

Likely Case

Unauthorized data access, privilege escalation, and potential administrative account takeover.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and WAF protection in place.

🌐 Internet-Facing: HIGH - The vulnerability is in admincp.php which is typically internet-accessible, allowing remote exploitation.
🏢 Internal Only: MEDIUM - Even if not internet-facing, internal attackers or compromised accounts could exploit this vulnerability.

🎯 Exploit Status

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

Exploitation requires access to the admincp.php endpoint, which typically requires authentication. However, if authentication is bypassed or compromised, exploitation is straightforward.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v7.0.17 or later

Vendor Advisory: http://icms.com

Restart Required: No

Instructions:

1. Backup your database and application files. 2. Download the latest version from the official iCMS website. 3. Replace the vulnerable admincp.php file with the patched version. 4. Verify the fix by testing the where parameter functionality.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to sanitize the where parameter before processing

Add parameter validation in admincp.php: $where = filter_var($_GET['where'], FILTER_SANITIZE_STRING);

WAF Rule Implementation

all

Implement web application firewall rules to block SQL injection patterns

Add WAF rule: SecRule ARGS:where "@detectSQLi" "id:1001,phase:2,deny,status:403"

🧯 If You Can't Patch

  • Restrict access to admincp.php using IP whitelisting or network segmentation
  • Implement database user privilege separation to limit potential damage

🔍 How to Verify

Check if Vulnerable:

Check if your iCMS version is 7.0.16 by examining the version file or admin panel. Test the where parameter with SQL injection payloads in a controlled environment.

Check Version:

Check the version.php file or login to admin panel to see version information

Verify Fix Applied:

After patching, attempt to exploit the vulnerability with test payloads. Verify that SQL injection attempts are properly blocked or sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed login attempts followed by admincp.php access
  • WHERE parameter containing SQL keywords like UNION, SELECT, INSERT

Network Indicators:

  • HTTP requests to admincp.php with suspicious where parameter values
  • Unusual database connection patterns from web server

SIEM Query:

source="web_logs" AND uri="/admincp.php" AND (where="*UNION*" OR where="*SELECT*" OR where="*INSERT*")

🔗 References

📤 Share & Export