CVE-2021-3242

9.8 CRITICAL

📋 TL;DR

CVE-2021-3242 is a SQL injection vulnerability in DuxCMS v3.1.3 that allows attackers to execute arbitrary SQL commands via the s/tools/SendTpl/index?keyword= parameter. This affects all users running the vulnerable version of DuxCMS, potentially compromising database integrity and confidentiality.

💻 Affected Systems

Products:
  • DuxCMS
Versions: v3.1.3
Operating Systems: Any
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects DuxCMS v3.1.3; other versions may be unaffected but should be verified.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise allowing data theft, modification, or deletion, and potential remote code execution if database permissions allow.

🟠

Likely Case

Unauthorized data access, extraction of sensitive information like user credentials, and potential privilege escalation.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and database user privilege restrictions in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation is straightforward via crafted HTTP requests to the vulnerable endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v3.1.4 or later

Vendor Advisory: https://github.com/duxphp/DuxCMS3/issues/4

Restart Required: No

Instructions:

1. Backup your DuxCMS installation and database. 2. Download and install DuxCMS v3.1.4 or later from the official repository. 3. Replace the vulnerable files, particularly those in the s/tools/SendTpl/ directory. 4. Test the application functionality.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize the keyword parameter.

Modify the SendTpl controller to validate and sanitize input before database queries.

Web Application Firewall (WAF) Rule

all

Block requests containing SQL injection patterns targeting the vulnerable endpoint.

Add WAF rule to block requests to /s/tools/SendTpl/index with suspicious SQL keywords in parameters.

🧯 If You Can't Patch

  • Restrict access to the vulnerable endpoint using network ACLs or authentication.
  • Implement database user privilege restrictions to limit potential damage from SQL injection.

🔍 How to Verify

Check if Vulnerable:

Check if DuxCMS version is 3.1.3 by reviewing the application files or admin panel. Test by sending a crafted request to /s/tools/SendTpl/index?keyword=test' OR '1'='1 and observing database errors or unexpected behavior.

Check Version:

Check the version in the DuxCMS admin panel or review the application's configuration files for version information.

Verify Fix Applied:

After patching, test the same endpoint with SQL injection payloads; it should return normal responses without errors or data leakage. Verify the application version is 3.1.4 or later.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple requests to /s/tools/SendTpl/index with suspicious parameters containing SQL keywords like UNION, SELECT, OR

Network Indicators:

  • HTTP requests to /s/tools/SendTpl/index with parameters containing SQL injection patterns

SIEM Query:

source="web_logs" AND uri_path="/s/tools/SendTpl/index" AND (query_string="*UNION*" OR query_string="*SELECT*" OR query_string="*OR*" OR query_string="*'*'*")

🔗 References

📤 Share & Export