CVE-2026-14733 Overview
CVE-2026-14733 is a SQL injection vulnerability in SourceCodester Class and Exam Timetabling System 1.0. The flaw resides in /edit_coursea.php and stems from unsanitized handling of the ID request parameter. Attackers can manipulate this parameter to inject arbitrary SQL statements into the backend database query.
The issue is classified under [CWE-74] (Improper Neutralization of Special Elements in Output Used by a Downstream Component). The vulnerability is exploitable remotely without authentication or user interaction. Public exploit details have been disclosed, increasing the likelihood of opportunistic exploitation against exposed installations.
Critical Impact
Unauthenticated remote attackers can inject SQL through the ID parameter of /edit_coursea.php, exposing database contents and potentially modifying stored records.
Affected Products
- SourceCodester Class and Exam Timetabling System 1.0
- /edit_coursea.php endpoint
- Deployments exposing the application to untrusted networks
Discovery Timeline
- 2026-07-05 - CVE-2026-14733 published to NVD
- 2026-07-06 - Last updated in NVD database
Technical Details for CVE-2026-14733
Vulnerability Analysis
The vulnerability exists in the /edit_coursea.php script of SourceCodester Class and Exam Timetabling System 1.0. The script accepts an ID parameter that is passed directly into a SQL query without parameterization or input validation. This enables attackers to append or alter SQL clauses executed by the database engine.
Because the endpoint is reachable over the network and does not require credentials, the attack complexity is low. A successful injection can disclose data such as user records, course information, and credentials stored in the underlying database. Depending on database permissions, attackers may also modify or delete records.
The advisory notes that the exploit is public, meaning working payloads are available in third-party references. See the GitHub Issue Discussion and VulDB CVE-2026-14733 Entry for additional technical context.
Root Cause
The root cause is missing input sanitization and lack of prepared statements. The ID parameter is concatenated into a SQL query string rather than bound as a parameter. Any special SQL metacharacter supplied by the client alters query semantics.
Attack Vector
An unauthenticated attacker sends a crafted HTTP request to /edit_coursea.php containing a malicious ID value. The injected SQL executes with the privileges of the application's database user. No user interaction is required, and the attack originates entirely over the network.
No verified proof-of-concept code is reproduced here. Refer to the VulDB Vulnerability #376315 entry for exploitation specifics.
Detection Methods for CVE-2026-14733
Indicators of Compromise
- HTTP requests to /edit_coursea.php containing SQL metacharacters such as single quotes, UNION SELECT, --, or OR 1=1 in the ID parameter.
- Unusual database error messages returned to clients or logged by the web server.
- Unexpected outbound queries or data volumes from the database host serving the application.
Detection Strategies
- Deploy web application firewall (WAF) signatures that flag SQL injection patterns targeting the ID parameter on /edit_coursea.php.
- Enable verbose query logging on the backend database and correlate anomalous queries with web access logs.
- Perform authenticated vulnerability scanning against the application to confirm whether the vulnerable endpoint is reachable.
Monitoring Recommendations
- Alert on repeated 500-series HTTP responses from /edit_coursea.php, which often indicate injection probing.
- Baseline normal query patterns for the timetabling database and alert on deviations such as information_schema access.
- Monitor authentication tables and privileged accounts for unauthorized reads or modifications.
How to Mitigate CVE-2026-14733
Immediate Actions Required
- Restrict network access to the Class and Exam Timetabling System until a patched build is deployed.
- Place the application behind a WAF with SQL injection rules tuned for the ID parameter.
- Audit database logs for evidence of prior exploitation and rotate any credentials that may have been exposed.
Patch Information
No official vendor patch has been referenced in the advisory at time of writing. Consult the SourceCodester Security Blog and the VulDB #376315 CTI Report for updates. Organizations maintaining custom forks should refactor the affected query to use parameterized statements.
Workarounds
- Modify /edit_coursea.php to validate that ID is a numeric value before use, rejecting all other input.
- Replace string concatenation with prepared statements or parameterized queries using PDO or MySQLi.
- Apply the principle of least privilege to the application's database account, removing DDL and cross-database permissions.
# Example Apache rewrite rule to block non-numeric ID values
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)id=([^0-9&]+) [NC]
RewriteRule ^edit_coursea\.php$ - [F,L]
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

