CVE-2025-10601
📋 TL;DR
This SQL injection vulnerability in SourceCodester Online Exam Form Submission 1.0 allows attackers to manipulate database queries via the email parameter in /admin/index.php. Attackers can potentially access, modify, or delete sensitive data including exam submissions and user credentials. All installations of version 1.0 are affected.
💻 Affected Systems
- SourceCodester Online Exam Form Submission
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to data theft, exam manipulation, privilege escalation, and potential system takeover via SQL injection to RCE chaining.
Likely Case
Unauthorized access to sensitive exam data, user information extraction, and potential authentication bypass to gain admin privileges.
If Mitigated
Limited impact with proper input validation and database permissions, potentially only error messages or partial data exposure.
🎯 Exploit Status
Exploit details are publicly available on GitHub. The vulnerability requires no authentication and has simple exploitation vectors.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: https://www.sourcecodester.com/
Restart Required: No
Instructions:
No official patch available. Consider implementing input validation and parameterized queries as temporary mitigation.
🔧 Temporary Workarounds
Input Validation and Sanitization
allImplement server-side validation and sanitization of email parameter in /admin/index.php
Edit /admin/index.php to add input validation: $email = mysqli_real_escape_string($conn, $_POST['email']);
Web Application Firewall Rules
allDeploy WAF rules to block SQL injection patterns targeting the email parameter
ModSecurity rule: SecRule ARGS:email "@detectSQLi" "id:1001,phase:2,deny,status:403"
🧯 If You Can't Patch
- Isolate the application behind a reverse proxy with strict input filtering
- Implement network segmentation to limit database access from the application server
🔍 How to Verify
Check if Vulnerable:
Test the /admin/index.php endpoint with SQL injection payloads in the email parameter (e.g., ' OR '1'='1)
Check Version:
Check application version in admin panel or readme files
Verify Fix Applied:
Verify that SQL injection payloads no longer execute and return appropriate error messages or are blocked
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL error messages in application logs
- Multiple failed login attempts with SQL patterns in email field
- Unexpected database queries from admin interface
Network Indicators:
- HTTP POST requests to /admin/index.php containing SQL keywords in parameters
- Unusual database connection patterns from web server
SIEM Query:
source="web_logs" AND uri="/admin/index.php" AND (email="*OR*" OR email="*UNION*" OR email="*SELECT*")