CVE-2024-40477

9.8 CRITICAL

📋 TL;DR

This SQL injection vulnerability in PHPGurukul Old Age Home Management System allows attackers to execute arbitrary SQL commands through the forgot password functionality. Attackers can potentially access, modify, or delete database contents, including sensitive resident and administrative data. All deployments of version 1.0 are affected.

💻 Affected Systems

Products:
  • PHPGurukul Old Age Home Management System
Versions: v1.0
Operating Systems: Any OS running PHP and MySQL
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations are vulnerable. The vulnerability exists in the admin forgot password functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

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

🟠

Likely Case

Unauthorized access to sensitive personal information (resident data, medical records), administrative credentials theft, and potential system takeover.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, 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

The vulnerability requires no authentication and has publicly available proof-of-concept documentation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://phpgurukul.com/old-age-home-management-system-using-php-and-mysql/

Restart Required: No

Instructions:

No official patch available. Implement workarounds or migrate to a different system.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add proper input validation and parameterized queries to the forgot-password.php file

Edit /oahms/admin/forgot-password.php to replace raw SQL with prepared statements

Disable Vulnerable Endpoint

all

Temporarily disable or restrict access to the vulnerable forgot password functionality

Rename forgot-password.php to forgot-password.php.disabled
Add authentication requirement to access the page

🧯 If You Can't Patch

  • Implement web application firewall (WAF) with SQL injection rules
  • Restrict network access to the admin interface using IP whitelisting

🔍 How to Verify

Check if Vulnerable:

Test the /oahms/admin/forgot-password.php endpoint with SQL injection payloads in the email 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 parameterized queries are implemented

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL error messages in application logs
  • Multiple failed password reset attempts with SQL syntax
  • Admin login attempts from unexpected IPs

Network Indicators:

  • HTTP POST requests to /oahms/admin/forgot-password.php with SQL keywords in parameters
  • Unusual database query patterns

SIEM Query:

source="web_logs" AND uri="/oahms/admin/forgot-password.php" AND (param="email" AND value CONTAINS "' OR ")

🔗 References

📤 Share & Export