/

CVE-2026-102909

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Reviewer Assessment

CVE-2026-102909

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database Query Manipulation and Potential Data Exposure

Severity:

HIGH RISK

(7.3)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

SourceCodester Online Reviewer Management System 1.0 contains a SQL injection vulnerability involving the access_code argument in the reviewer assessment functionality. A remote attacker who can reach the affected endpoint may manipulate database queries, depending on deployment configuration and database privileges.

Affected context

The vulnerability occurs in the assessment workflow at /reviewer_0/admins/assessments/examproper/btn_functions.php, where the access_code argument is processed. Risk is present when remotely supplied input reaches database query construction without sufficient parameterization or context-aware validation.

Exploit preconditions

  • Attack surface: A remotely reachable reviewer assessment endpoint
  • Required access: The ability to send requests accepted by the affected function; authentication requirements may vary by deployment
  • Trigger point: Processing of the access_code argument
  • Why exploitation is possible: User-controlled input may influence SQL query structure instead of being handled solely as data

Why this happens

The underlying issue is improper separation between untrusted input and SQL command structure. If the access_code value is incorporated into a database query through unsafe string construction or insufficiently controlled parsing, an attacker may alter the intended query semantics. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command, with CWE-74 describing the broader injection pattern.

Potential impact

  • An attacker may retrieve unauthorized database records
  • Database contents could be modified or deleted
  • Authentication or authorization data may be exposed
  • Application behavior could be altered through manipulated query results
  • The impact could extend to other systems if stored database secrets are accessible

General mitigation guidance

Mitigation generally centers on ensuring that database operations treat external values strictly as data.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist validation appropriate to the expected access_code format
  • Avoid constructing SQL statements through string concatenation
  • Use database accounts with only the permissions required by the application
  • Keep sensitive credentials and connection details out of exposed application data
  • Return generic database errors while recording detailed events in protected logs

How teams detect issues like this

Organizations can identify SQL injection risks through:

  • Static analysis rules for SQL string concatenation and interpolated query construction
  • Code review checks covering request parameters used in database calls
  • Dynamic testing of reachable endpoints with benign input variations
  • Web application firewall or gateway policies that monitor suspicious query manipulation patterns
  • Database audit logging for unusual query errors, access patterns, or privilege use
  • Automated security review tools that flag missing parameter binding and weak input handling

Sources

SourceLink
github.comgithub.com/Aszadom/cve/issues/2
vuldb.comvuldb.com/cve/CVE-2026-102909
vuldb.comvuldb.com/submit/953896
vuldb.comvuldb.com/vuln/411582
vuldb.comvuldb.com/vuln/411582/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

Yes, the reported attack surface is remotely reachable. Actual exploitability depends on endpoint exposure, authentication controls, and whether the input reaches a vulnerable database operation.

Not necessarily. The required access depends on how the reviewer administration and assessment endpoints are deployed and protected.

Use parameterized queries or prepared statements, validate the expected input format, and ensure database accounts have minimal privileges.

Standardize safe database-access libraries, prohibit dynamic SQL construction from request data, and include static analysis, code review, and security testing in the development process.

Find out what's already
exploitable in your codebase.