CVE-2025-3182
📋 TL;DR
This critical SQL injection vulnerability in Online Doctor Appointment Booking System 1.0 allows attackers to execute arbitrary SQL commands via the 'q' parameter in /patient/getschedule.php. Attackers can potentially access, modify, or delete sensitive medical appointment data. All systems running the vulnerable version are affected.
💻 Affected Systems
- projectworlds Online Doctor Appointment Booking System
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to exposure of all patient records, appointment details, and potentially administrative credentials, followed by data destruction or ransomware deployment.
Likely Case
Unauthorized access to patient appointment data, extraction of sensitive information, and potential privilege escalation to administrative functions.
If Mitigated
Limited data exposure if proper input validation and WAF rules are in place, but system remains vulnerable to skilled attackers.
🎯 Exploit Status
Public exploit details available on GitHub. SQL injection via URL parameter makes exploitation straightforward.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: None available
Restart Required: No
Instructions:
No official patch available. Consider migrating to alternative software or implementing custom fixes.
🔧 Temporary Workarounds
Input Validation Filter
allAdd parameter validation to filter malicious SQL characters from the 'q' parameter
Modify /patient/getschedule.php to sanitize $_GET['q'] input using prepared statements or parameterized queries
Web Application Firewall Rule
allBlock SQL injection patterns targeting the vulnerable endpoint
Add WAF rule: deny requests to /patient/getschedule.php containing SQL keywords in 'q' parameter
🧯 If You Can't Patch
- Block external access to /patient/getschedule.php via firewall rules
- Implement network segmentation to isolate the vulnerable system from sensitive data
🔍 How to Verify
Check if Vulnerable:
Test by sending a request to /patient/getschedule.php?q=1' AND '1'='1 and checking for SQL error responses
Check Version:
Check system documentation or admin panel for version information
Verify Fix Applied:
Test with SQL injection payloads and verify they are rejected or sanitized
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL error messages in web server logs
- Multiple requests to /patient/getschedule.php with SQL keywords in parameters
Network Indicators:
- HTTP requests containing SQL injection patterns targeting the vulnerable endpoint
SIEM Query:
source="web_server" AND (url="/patient/getschedule.php" AND (param="q" AND value MATCH "'.*[Ss][Ee][Ll][Ee][Cc][Tt].*'"))