CVE-2025-2372

7.3 HIGH

📋 TL;DR

This critical SQL injection vulnerability in PHPGurukul Human Metapneumovirus Testing Management System 1.0 allows remote attackers to execute arbitrary SQL commands via the username parameter in the password recovery page. Attackers can potentially access, modify, or delete database content. All deployments of version 1.0 are affected.

💻 Affected Systems

Products:
  • PHPGurukul Human Metapneumovirus Testing Management System
Versions: 1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of version 1.0 are vulnerable by default. The vulnerability exists in the core password recovery functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including exfiltration of sensitive medical testing data, patient information, administrative credentials, and potential system takeover via subsequent attacks.

🟠

Likely Case

Data exfiltration of user credentials and patient records, database manipulation, and potential privilege escalation within the application.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, potentially only error messages or limited data exposure.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit details are publicly disclosed. Attack requires no authentication and can be performed remotely via HTTP requests.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: https://phpgurukul.com/

Restart Required: No

Instructions:

No official patch available. Consider migrating to a different system or implementing custom fixes with proper input validation and parameterized queries.

🔧 Temporary Workarounds

Input Validation and Sanitization

PHP

Implement server-side validation and sanitization of username parameter in password-recovery.php

Modify /password-recovery.php to validate username input using PHP filter functions and escape SQL special characters

Web Application Firewall Rules

all

Block SQL injection patterns in requests to password-recovery.php

Add WAF rule to block requests containing SQL keywords like UNION, SELECT, INSERT, DELETE, DROP when sent to /password-recovery.php

🧯 If You Can't Patch

  • Disable or remove the password-recovery.php file if password recovery functionality is not essential
  • Implement network segmentation and restrict access to the application from untrusted networks

🔍 How to Verify

Check if Vulnerable:

Test the password recovery page with SQL injection payloads in the username parameter (e.g., admin' OR '1'='1)

Check Version:

Check application version in admin panel or readme files

Verify Fix Applied:

Test with SQL injection payloads after implementing fixes - should return error messages or no data rather than executing SQL

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple failed password recovery attempts with SQL-like patterns
  • Requests to password-recovery.php with special characters in parameters

Network Indicators:

  • HTTP POST requests to /password-recovery.php containing SQL keywords in parameters
  • Unusual database query patterns from application server

SIEM Query:

source="web_logs" AND uri_path="/password-recovery.php" AND (param="username" AND value MATCHES "[';]|UNION|SELECT|INSERT|DELETE|DROP")

🔗 References

📤 Share & Export