/

CVE-2026-105246

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in SourceCodester Reviewer Portal

CVE-2026-105246

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database Compromise and Data Manipulation

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

A SQL injection vulnerability in the Online Reviewer Management System allows remote input to influence a database query through the Subject parameter.

If the vulnerable assessment update endpoint is reachable and does not safely handle user-controlled input, an attacker may read, alter, or otherwise affect database contents.

A SQL injection vulnerability in the Online Reviewer Management System allows remote input to influence a database query through the Subject parameter.

If the vulnerable assessment update endpoint is reachable and does not safely handle user-controlled input, an attacker may read, alter, or otherwise affect database contents.

Affected context

The vulnerability occurs in SourceCodester Online Reviewer Management System 1.0, within the assessment subject update functionality at reviewer_0/admins/assessments/Subject/btn_functions.php?action=update. Risk depends on whether the endpoint is remotely reachable, whether the Subject parameter reaches database operations without effective separation from SQL syntax, and what database privileges the application uses.

The vulnerability occurs in SourceCodester Online Reviewer Management System 1.0, within the assessment subject update functionality at reviewer_0/admins/assessments/Subject/btn_functions.php?action=update. Risk depends on whether the endpoint is remotely reachable, whether the Subject parameter reaches database operations without effective separation from SQL syntax, and what database privileges the application uses.

Exploit preconditions

  • Attack surface: Remote web application request to the assessment subject update endpoint
  • Required access: Access sufficient to submit requests to the affected functionality; authentication requirements depend on deployment configuration
  • Trigger point: Processing of the Subject argument during an assessment subject update
  • Why exploitation is possible: User-controlled input may be incorporated into a database query without reliable parameterization or equivalent query separation
  • Attack surface: Remote web application request to the assessment subject update endpoint
  • Required access: Access sufficient to submit requests to the affected functionality; authentication requirements depend on deployment configuration
  • Trigger point: Processing of the Subject argument during an assessment subject update
  • Why exploitation is possible: User-controlled input may be incorporated into a database query without reliable parameterization or equivalent query separation

Why this happens

The underlying issue is an injection flaw in which externally controlled input is treated as part of a database command rather than as data. This behavior maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection) and is also related to CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component. The insecure pattern typically involves dynamically constructing SQL statements from request parameters without using parameterized queries or another trusted data-access abstraction.

The underlying issue is an injection flaw in which externally controlled input is treated as part of a database command rather than as data. This behavior maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection) and is also related to CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component. The insecure pattern typically involves dynamically constructing SQL statements from request parameters without using parameterized queries or another trusted data-access abstraction.

Potential impact

  • An attacker may retrieve sensitive database records
  • Database contents could be modified, deleted, or corrupted
  • Application authentication or authorization data could be affected
  • Confidentiality, integrity, and availability of the reviewer system may be reduced
  • The database account's privileges could enable access to additional application data
  • An attacker may retrieve sensitive database records
  • Database contents could be modified, deleted, or corrupted
  • Application authentication or authorization data could be affected
  • Confidentiality, integrity, and availability of the reviewer system may be reduced
  • The database account's privileges could enable access to additional application data

General mitigation guidance

Mitigation generally focuses on ensuring that request data remains data throughout database processing.

Common defensive patterns include:

  • Use parameterized queries, prepared statements, or trusted ORM query interfaces
  • Apply allowlisted validation for subject values according to their expected format and length
  • Avoid dynamically concatenating request parameters into SQL statements
  • Use a database account with only the minimum permissions required by the application
  • Keep administrative endpoints behind appropriate authentication and authorization controls
  • Return generic database errors so internal query details are not exposed
  • Treat client-side validation as supplementary rather than as a security boundary

Mitigation generally focuses on ensuring that request data remains data throughout database processing.

Common defensive patterns include:

  • Use parameterized queries, prepared statements, or trusted ORM query interfaces
  • Apply allowlisted validation for subject values according to their expected format and length
  • Avoid dynamically concatenating request parameters into SQL statements
  • Use a database account with only the minimum permissions required by the application
  • Keep administrative endpoints behind appropriate authentication and authorization controls
  • Return generic database errors so internal query details are not exposed
  • Treat client-side validation as supplementary rather than as a security boundary

How teams detect issues like this

Organizations can identify SQL injection risks through:

  • Static analysis rules that flag string concatenation or interpolation in SQL construction
  • Code review checks for request parameters passed directly to database APIs
  • Dynamic testing of reachable endpoints using controlled, non-destructive input variations
  • Database and application logs showing malformed queries, unexpected operators, or anomalous access patterns
  • Policy enforcement requiring parameterized queries and approved data-access libraries
  • Automated security review tools integrated into development and pull-request workflows

Organizations can identify SQL injection risks through:

  • Static analysis rules that flag string concatenation or interpolation in SQL construction
  • Code review checks for request parameters passed directly to database APIs
  • Dynamic testing of reachable endpoints using controlled, non-destructive input variations
  • Database and application logs showing malformed queries, unexpected operators, or anomalous access patterns
  • Policy enforcement requiring parameterized queries and approved data-access libraries
  • Automated security review tools integrated into development and pull-request workflows

Sources

SourceLink
github.comgithub.com/memory0433/cve/issues/1
vuldb.comvuldb.com/cve/CVE-2026-105246
vuldb.comvuldb.com/submit/976274
vuldb.comvuldb.com/vuln/413452
vuldb.comvuldb.com/vuln/413452/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

Yes, the affected functionality is exposed through a web request. Practical exploitability depends on endpoint reachability, authentication controls, and whether the input reaches a vulnerable database operation.

Not necessarily. The required access depends on how the application protects the assessment update endpoint and how deployed access controls are configured.

Use parameterized queries or prepared statements for every database operation, combined with appropriate input validation and least-privilege database permissions.

Standardize secure data-access APIs, prohibit SQL string construction from request data, review administrative endpoints, and include static and dynamic security testing in the development lifecycle.

Yes, the affected functionality is exposed through a web request. Practical exploitability depends on endpoint reachability, authentication controls, and whether the input reaches a vulnerable database operation.

Not necessarily. The required access depends on how the application protects the assessment update endpoint and how deployed access controls are configured.

Use parameterized queries or prepared statements for every database operation, combined with appropriate input validation and least-privilege database permissions.

Standardize secure data-access APIs, prohibit SQL string construction from request data, review administrative endpoints, and include static and dynamic security testing in the development lifecycle.

Find out what's already
exploitable in your codebase.