CVE-2025-4816

7.3 HIGH

📋 TL;DR

This critical SQL injection vulnerability in SourceCodester Doctor's Appointment System 1.0 allows remote attackers to execute arbitrary SQL commands via the ID parameter in /admin/appointment.php. Attackers can potentially access, modify, or delete database content. All installations of version 1.0 are affected.

💻 Affected Systems

Products:
  • SourceCodester Doctor's Appointment System
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation. No special configuration is required for exploitation.

📦 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 if database functions allow it.

🟠

Likely Case

Unauthorized access to sensitive patient and appointment data, potential privilege escalation, and database manipulation.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, though SQL injection attempts would still be logged.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit requires admin access to reach /admin/appointment.php. SQL injection via GET parameter is straightforward for attackers with basic skills.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://www.sourcecodester.com/

Restart Required: No

Instructions:

No official patch available. Implement workarounds or consider replacing the software.

🔧 Temporary Workarounds

Input Validation and Parameterized Queries

all

Modify /admin/appointment.php to validate and sanitize the ID parameter, and use prepared statements or parameterized queries.

Edit the PHP file to replace raw SQL queries with prepared statements using PDO or mysqli

Web Application Firewall (WAF)

all

Deploy a WAF with SQL injection rules to block malicious requests to /admin/appointment.php.

🧯 If You Can't Patch

  • Restrict access to /admin/appointment.php using IP whitelisting or authentication requirements.
  • Monitor and log all access attempts to the vulnerable endpoint for suspicious activity.

🔍 How to Verify

Check if Vulnerable:

Test the /admin/appointment.php endpoint with SQL injection payloads in the ID parameter (e.g., ID=1' OR '1'='1).

Check Version:

Check the software version in the admin panel or configuration files.

Verify Fix Applied:

After applying fixes, retest with SQL injection payloads to ensure they are blocked or sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in web server logs
  • Multiple requests to /admin/appointment.php with suspicious ID parameters

Network Indicators:

  • HTTP requests to /admin/appointment.php containing SQL keywords like UNION, SELECT, OR in GET parameters

SIEM Query:

source="web_logs" AND uri="/admin/appointment.php" AND (query="*UNION*" OR query="*SELECT*" OR query="*OR*" OR query="*'*" OR query="*--*" OR query="*;*")

🔗 References

📤 Share & Export