Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-14641

CVE-2026-14641: Class and Exam Timetabling SQLi Flaw

CVE-2026-14641 is a SQL injection vulnerability in SourceCodester Class and Exam Timetabling System 1.0 affecting the edit_course.php file. Attackers can exploit the ID parameter remotely. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-14641 Overview

CVE-2026-14641 is a SQL injection vulnerability in SourceCodester Class and Exam Timetabling System 1.0. The flaw resides in the /edit_course.php script, where the ID parameter is passed to database queries without proper sanitization. Attackers can manipulate this argument to inject arbitrary SQL statements. The vulnerability is exploitable remotely without authentication or user interaction. The exploit has been publicly disclosed, increasing the likelihood of opportunistic attacks against exposed installations.

Critical Impact

Remote, unauthenticated attackers can inject SQL through the ID parameter of /edit_course.php, enabling database read and modification against affected deployments.

Affected Products

  • SourceCodester Class and Exam Timetabling System 1.0
  • The vulnerable component is the /edit_course.php endpoint
  • The ID request argument is the confirmed injection point

Discovery Timeline

  • 2026-07-04 - CVE-2026-14641 published to NVD
  • 2026-07-06 - Last updated in NVD database

Technical Details for CVE-2026-14641

Vulnerability Analysis

The vulnerability is a classic SQL injection classified under [CWE-74] (Improper Neutralization of Special Elements in Output). The /edit_course.php script accepts an ID parameter from the HTTP request and concatenates it into a SQL query executed against the backend database. Because the value is not parameterized or escaped, an attacker can break out of the intended query context and append arbitrary SQL clauses. Successful exploitation allows attackers to read course records, enumerate database schema, modify timetabling data, or extract credentials stored in the application database. Because the endpoint is reachable over the network and requires no authentication, exploitation only requires knowledge of the URL path and parameter name, both of which are documented in the public disclosure.

Root Cause

The root cause is missing input validation and lack of prepared statements in the edit_course.php handler. The ID argument is treated as trusted data and concatenated directly into a SQL query string. No type coercion, allowlist filtering, or parameter binding is applied before the query reaches the database driver.

Attack Vector

An attacker sends a crafted HTTP request to /edit_course.php with a malicious ID value containing SQL metacharacters and payload clauses such as UNION SELECT statements or boolean-based blind injection primitives. The attack requires no credentials and can be automated with commodity tooling. The vulnerability manifests during query execution rather than at parsing time. Refer to the VulDB CVE-2026-14641 record and the GitHub issue discussion for the disclosed proof-of-concept details.

Detection Methods for CVE-2026-14641

Indicators of Compromise

  • HTTP requests to /edit_course.php containing SQL keywords such as UNION, SELECT, SLEEP, BENCHMARK, or comment sequences like -- and # in the ID parameter
  • Unusual database error messages logged by the application referencing malformed SQL syntax originating from edit_course.php
  • Repeated requests to /edit_course.php from a single source with incrementing or fuzzed ID values

Detection Strategies

  • Deploy web application firewall rules that inspect the ID parameter on /edit_course.php for SQL injection signatures
  • Enable query logging on the backend database and alert on queries containing tautologies, stacked statements, or unexpected UNION clauses tied to course editing endpoints
  • Correlate web server access logs with database slow-query logs to surface time-based blind injection attempts

Monitoring Recommendations

  • Baseline normal request patterns to /edit_course.php and alert on parameter length or entropy anomalies in the ID value
  • Monitor outbound network activity from the web server for signs of data exfiltration following suspicious database queries
  • Track authentication and administrative actions in the timetabling application for signs of tampered course records

How to Mitigate CVE-2026-14641

Immediate Actions Required

  • Restrict network access to the Class and Exam Timetabling System 1.0 to trusted networks or VPN users until a fix is applied
  • Deploy WAF signatures that block SQL metacharacters in the ID parameter of /edit_course.php
  • Review database and application logs for evidence of prior exploitation of the edit_course.php endpoint

Patch Information

No official vendor patch has been published for SourceCodester Class and Exam Timetabling System 1.0 at the time of NVD publication. Administrators should monitor the SourceCodester project page and the VulDB advisory for updates. In the absence of a vendor fix, operators must apply code-level mitigations by rewriting the vulnerable query using parameterized statements (PDO::prepare with bound parameters or mysqli prepared statements) and enforcing integer casting on the ID argument.

Workarounds

  • Rewrite edit_course.php to bind the ID parameter using prepared statements and cast the input to an integer with intval() before use
  • Apply least-privilege database credentials so the web application account cannot read sensitive tables or execute administrative statements
  • Disable or remove the affected endpoint if course editing functionality is not required in the deployment

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.