CVE-2025-2649

7.3 HIGH

📋 TL;DR

This critical SQL injection vulnerability in PHPGurukul Doctor Appointment Management System 1.0 allows attackers to execute arbitrary SQL commands through the /check-appointment.php file. Remote attackers can potentially access, modify, or delete sensitive medical appointment data. All users running the vulnerable version are affected.

💻 Affected Systems

Products:
  • PHPGurukul Doctor Appointment Management System
Versions: 1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the default installation. The /check-appointment.php file with searchdata parameter manipulation is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including patient medical records, appointment details, and potentially administrative credentials leading to data theft, system takeover, or data destruction.

🟠

Likely Case

Unauthorized access to appointment data, patient information exposure, and potential privilege escalation within the application.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, potentially only allowing data viewing without modification.

🌐 Internet-Facing: HIGH - The vulnerability is remotely exploitable and affects a web application component.
🏢 Internal Only: MEDIUM - Internal attackers could exploit this, but external threat is higher due to remote exploitability.

🎯 Exploit Status

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

Exploit details are publicly available on GitHub. SQL injection via searchdata parameter requires minimal technical skill.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://phpgurukul.com/

Restart Required: No

Instructions:

No official patch available. Implement input validation and parameterized queries in /check-appointment.php.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add server-side validation to sanitize searchdata parameter inputs before processing SQL queries.

Implement prepared statements with parameterized queries in PHP code

Web Application Firewall Rules

all

Deploy WAF rules to block SQL injection patterns targeting /check-appointment.php

Add WAF rule: Block requests with SQL keywords in searchdata parameter

🧯 If You Can't Patch

  • Disable or restrict access to /check-appointment.php endpoint
  • Implement network segmentation to isolate the application from sensitive databases

🔍 How to Verify

Check if Vulnerable:

Test /check-appointment.php with SQL injection payloads in searchdata parameter (e.g., searchdata=' OR '1'='1)

Check Version:

Check application version in admin panel or configuration files

Verify Fix Applied:

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

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in application logs
  • Multiple failed login attempts via /check-appointment.php
  • SQL error messages containing database structure

Network Indicators:

  • HTTP POST requests to /check-appointment.php with SQL keywords in parameters
  • Unusual database connection patterns

SIEM Query:

source="web_logs" AND uri="/check-appointment.php" AND (param="searchdata" AND value CONTAINS "UNION" OR value CONTAINS "SELECT" OR value CONTAINS "OR '1'='1")

🔗 References

📤 Share & Export