CVE-2025-10409
📋 TL;DR
This SQL injection vulnerability in SourceCodester Student Grading System 1.0 allows remote attackers to execute arbitrary SQL commands via the 'fname' parameter in /rms.php?page=users. Organizations using this specific version of the grading system are affected, potentially exposing student data and system integrity.
💻 Affected Systems
- SourceCodester Student Grading System
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to data theft, data manipulation, or complete system takeover through privilege escalation.
Likely Case
Unauthorized access to student records, grades, and personal information stored in the database.
If Mitigated
Limited data exposure if proper input validation and WAF rules are in place.
🎯 Exploit Status
Exploit details are publicly available on GitHub, making this easily exploitable.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Not available
Vendor Advisory: https://www.sourcecodester.com/
Restart Required: No
Instructions:
No official patch available. Consider upgrading to a newer version if available, or implement workarounds.
🔧 Temporary Workarounds
Input Validation and Sanitization
PHPImplement proper input validation and parameterized queries for the fname parameter in rms.php
Modify PHP code to use prepared statements: $stmt = $conn->prepare('SELECT * FROM users WHERE fname = ?'); $stmt->bind_param('s', $fname);
Web Application Firewall Rules
allDeploy WAF rules to block SQL injection patterns targeting the vulnerable endpoint
Add WAF rule: Block requests containing SQL keywords in fname parameter to /rms.php?page=users
🧯 If You Can't Patch
- Block external access to the vulnerable system using network ACLs or firewall rules
- Implement strict input validation at the application layer for all user inputs
🔍 How to Verify
Check if Vulnerable:
Test the /rms.php?page=users endpoint with SQL injection payloads in the fname parameter (e.g., fname=' OR '1'='1)
Check Version:
Check system documentation or about page for version information
Verify Fix Applied:
Test with the same payloads after implementing fixes - should return error or no data instead of executing SQL
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL queries in database logs
- Multiple failed login attempts or parameter manipulation in web server logs
Network Indicators:
- HTTP requests to /rms.php?page=users with SQL keywords in parameters
- Unusual database connection patterns
SIEM Query:
source=web_logs AND uri_path="/rms.php" AND query_string="*page=users*" AND (query_string="*fname=*OR*" OR query_string="*fname=*UNION*" OR query_string="*fname=*SELECT*")