CVE-2024-54810

9.8 CRITICAL

📋 TL;DR

A SQL injection vulnerability in the PHPGurukul Pre-School Enrollment System allows remote attackers to execute arbitrary SQL commands via the mobileno parameter in the password recovery function. This can lead to unauthorized data access, modification, or deletion. All installations of version 1.0 are affected.

💻 Affected Systems

Products:
  • PHPGurukul Pre-School Enrollment System Project
Versions: v1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Requires the admin/password-recovery.php endpoint to be accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, system takeover, or ransomware deployment via SQL injection to RCE escalation.

🟠

Likely Case

Unauthorized access to sensitive student/parent data, credential theft, or database manipulation.

🟢

If Mitigated

Limited impact with proper input validation and database permissions restricting damage to non-critical data.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Public proof-of-concept available in GitHub repository. Exploitation requires no authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None known

Restart Required: No

Instructions:

No official patch available. Consider implementing input validation or replacing the system.

🔧 Temporary Workarounds

Input Validation Implementation

all

Add server-side validation to sanitize mobileno parameter before SQL query execution.

Modify /preschool/admin/password-recovery.php to validate mobileno parameter using prepared statements or parameterized queries.

Access Restriction

all

Restrict access to vulnerable endpoint using web server configuration.

Add .htaccess rule: Deny from all
Or configure web server to block /preschool/admin/password-recovery.php

🧯 If You Can't Patch

  • Implement WAF rules to block SQL injection patterns targeting the mobileno parameter.
  • Isolate the system behind network segmentation and restrict database access permissions.

🔍 How to Verify

Check if Vulnerable:

Test the /preschool/admin/password-recovery.php endpoint with SQL injection payloads in mobileno parameter.

Check Version:

Check system documentation or configuration files for version information.

Verify Fix Applied:

Verify that SQL injection attempts no longer succeed and that input validation is properly implemented.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL error messages in application logs
  • Multiple failed password recovery attempts with suspicious mobileno values

Network Indicators:

  • HTTP requests to /preschool/admin/password-recovery.php with SQL injection patterns in parameters

SIEM Query:

source="web_logs" AND uri="/preschool/admin/password-recovery.php" AND (param="mobileno" AND value MATCHES "[';]|UNION|SELECT|OR 1=1")

🔗 References

📤 Share & Export