CVE-2020-24769

9.8 CRITICAL

📋 TL;DR

This SQL injection vulnerability in NexusPHP 1.5 allows remote attackers to execute arbitrary SQL commands via the classes parameter in takeconfirm.php. Attackers can potentially read, modify, or delete database content, affecting all NexusPHP 1.5 installations with the vulnerable file exposed.

💻 Affected Systems

Products:
  • NexusPHP
Versions: Version 1.5
Operating Systems: All operating systems running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Any NexusPHP 1.5 installation with takeconfirm.php accessible via web requests is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data destruction, or remote code execution via database functions.

🟠

Likely Case

Unauthorized data access, privilege escalation, or data manipulation in the NexusPHP database.

🟢

If Mitigated

Limited impact with proper input validation and database permissions restricting damage scope.

🌐 Internet-Facing: HIGH - The vulnerable file is typically accessible via web requests, making internet-facing instances particularly vulnerable.
🏢 Internal Only: MEDIUM - Internal instances are still vulnerable but have reduced attack surface compared to internet-facing deployments.

🎯 Exploit Status

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

SQL injection via URL parameter requires minimal technical skill to exploit.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 1.6.0-beta2 or later

Vendor Advisory: https://nexusphp.org/2021/02/03/nexusphp-v1-6-0-beta2/

Restart Required: No

Instructions:

1. Backup your NexusPHP installation and database. 2. Download NexusPHP 1.6.0-beta2 or later from the official site. 3. Replace the vulnerable takeconfirm.php file with the patched version. 4. Test functionality to ensure compatibility.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to sanitize the classes parameter before processing.

Edit takeconfirm.php to add parameter validation: $classes = filter_var($_GET['classes'], FILTER_SANITIZE_STRING);

Web Application Firewall Rule

all

Block SQL injection patterns targeting the classes parameter.

Add WAF rule: deny requests containing SQL keywords in classes parameter

🧯 If You Can't Patch

  • Restrict access to takeconfirm.php via web server configuration or firewall rules.
  • Implement database user with minimal privileges to limit potential damage from SQL injection.

🔍 How to Verify

Check if Vulnerable:

Check if takeconfirm.php exists in your NexusPHP installation and review the code for proper input validation on the classes parameter.

Check Version:

Check the NexusPHP version in the admin panel or review the version file if present.

Verify Fix Applied:

Verify the takeconfirm.php file has been updated to version 1.6.0-beta2 or later, or contains proper input sanitization for the classes parameter.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed login attempts or parameter manipulation in web server logs

Network Indicators:

  • HTTP requests to takeconfirm.php with SQL injection patterns in the classes parameter

SIEM Query:

web.url:*takeconfirm.php* AND (web.param:*UNION* OR web.param:*SELECT* OR web.param:*INSERT* OR web.param:*DELETE*)

🔗 References

📤 Share & Export