CVE-2024-44641
📋 TL;DR
PHPGurukul Small CRM 3.0 contains a SQL injection vulnerability in the change-password.php file via the oldpass parameter. This allows attackers to execute arbitrary SQL commands on the database. Organizations using this specific CRM version are affected.
💻 Affected Systems
- PHPGurukul Small CRM
📦 What is this software?
Small Crm by Phpgurukul
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to data theft, data manipulation, or full system takeover via SQL injection to execute arbitrary commands.
Likely Case
Unauthorized access to sensitive CRM data including user credentials, customer information, and business records.
If Mitigated
Limited impact with proper input validation and parameterized queries preventing successful exploitation.
🎯 Exploit Status
Exploit requires authenticated access but SQL injection is straightforward once authenticated.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: https://phpgurukul.com/small-crm-php/
Restart Required: No
Instructions:
1. Check vendor website for security updates. 2. If no patch available, implement workarounds. 3. Consider migrating to supported software.
🔧 Temporary Workarounds
Input Validation and Sanitization
allAdd server-side validation to sanitize the oldpass parameter before processing.
Edit change-password.php to add: $oldpass = mysqli_real_escape_string($conn, $_POST['oldpass']);
Parameterized Queries Implementation
allReplace direct SQL concatenation with prepared statements.
Replace SQL query with: $stmt = $conn->prepare('SELECT * FROM users WHERE password = ?'); $stmt->bind_param('s', $oldpass); $stmt->execute();
🧯 If You Can't Patch
- Implement web application firewall (WAF) with SQL injection rules
- Restrict access to change-password.php to trusted IP addresses only
🔍 How to Verify
Check if Vulnerable:
Test change-password.php with SQL injection payloads in oldpass parameter: ' OR '1'='1
Check Version:
Check CRM admin panel or version.txt file for version information.
Verify Fix Applied:
Test with same payloads after implementing fixes - should return error or no data.
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL error messages in application logs
- Multiple failed password change attempts with SQL-like patterns
Network Indicators:
- HTTP POST requests to change-password.php containing SQL keywords in parameters
SIEM Query:
source="web_logs" AND uri="*change-password.php*" AND (param="*OR*" OR param="*UNION*" OR param="*SELECT*" OR param="*--*" OR param="*;*")