CVE-2026-2089
📋 TL;DR
This SQL injection vulnerability in SourceCodester Online Class Record System 1.0 allows attackers to manipulate database queries through the ID parameter in /admin/subject/controller.php. Remote attackers can potentially access, modify, or delete sensitive data in the database. All users running the vulnerable version of this web application are affected.
💻 Affected Systems
- SourceCodester Online Class Record System
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise including data theft, data manipulation, authentication bypass, and potential remote code execution if database permissions allow.
Likely Case
Unauthorized access to sensitive student/teacher records, grade manipulation, and potential privilege escalation within the application.
If Mitigated
Limited impact with proper input validation and database permission restrictions, potentially only allowing data viewing without modification.
🎯 Exploit Status
Exploit details are publicly available on GitHub, making this easily exploitable by attackers with basic SQL injection knowledge.
🛠️ 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 in the affected file.
🔧 Temporary Workarounds
Web Application Firewall (WAF)
allDeploy a WAF with SQL injection rules to block malicious requests to /admin/subject/controller.php
Input Validation Filter
allAdd input validation to sanitize the ID parameter before processing
// In /admin/subject/controller.php, add: $id = intval($_GET['ID']);
🧯 If You Can't Patch
- Restrict access to /admin/ directory to trusted IP addresses only
- Implement database user with minimal permissions (read-only if possible)
🔍 How to Verify
Check if Vulnerable:
Test the /admin/subject/controller.php endpoint with SQL injection payloads in the ID parameter
Check Version:
Check the application version in the admin panel or configuration files
Verify Fix Applied:
Verify that SQL injection payloads no longer execute and return appropriate error messages
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL error messages in application logs
- Multiple failed login attempts followed by SQL payloads
- Requests to /admin/subject/controller.php with suspicious ID parameters
Network Indicators:
- SQL keywords in HTTP GET parameters
- Unusual database query patterns from web server
SIEM Query:
source="web_logs" AND uri="/admin/subject/controller.php" AND (query="*UNION*" OR query="*SELECT*" OR query="*INSERT*" OR query="*DELETE*")