/

CVE-2026-95926

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Reviewer Management System

CVE-2026-95926

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database compromise, unauthorized data access, 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

SourceCodester Online Reviewer Management System 1.0 contains a SQL injection vulnerability in the assessment pretest update functionality. A remote attacker who can reach the affected endpoint may manipulate the test_id parameter to alter database queries, potentially exposing or changing stored application data.

Affected context

The issue occurs in the reviewer administration assessment workflow, within the pretest update handler at /reviewer_0/admins/assessments/pretest/btn_functions.php?action=update. Deployments are at risk when the endpoint is network-accessible and the test_id argument is incorporated into database operations without adequate parameterization or validation. The practical scope may also depend on authentication and database account permissions.

Exploit preconditions

  • Attack surface: The remotely reachable pretest assessment update endpoint
  • Required access: Network access to the application; authentication requirements may depend on deployment configuration
  • Trigger point: Processing the test_id argument during an update request
  • Why exploitation is possible: Application-controlled input may influence a database query without sufficient separation between data and SQL instructions

Why this happens

The underlying bug is an injection flaw in which externally influenced input is allowed to affect SQL command construction. 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 is treating a request parameter as trusted query syntax rather than binding it strictly as a value.

Potential impact

  • An attacker may read unauthorized records from the application database.
  • An attacker could modify or delete assessment and reviewer-related data.
  • The vulnerability may enable authentication or authorization data exposure.
  • Database availability could be affected through disruptive queries.
  • Further application compromise may be possible if the database account is overprivileged.

General mitigation guidance

Mitigation generally centers on separating user-controlled values from SQL

syntax and reducing the trust placed in request parameters.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for every database operation.
  • Apply allowlist validation and strict type handling to identifier fields such as test_id.
  • Avoid building SQL statements through string concatenation or formatting.
  • Enforce authorization checks at the update operation, not only at the interface.
  • Run the application with a narrowly scoped database account.
  • Limit database network exposure and protect sensitive records with layered access controls.
  • Return generic database errors to users and log relevant security events without recording sensitive values.

How teams detect issues like this

Organizations can detect similar weaknesses through:

  • Static analysis rules identifying SQL construction through concatenation, interpolation, or formatting.
  • Code review checks for request parameters passed directly into query-building APIs.
  • Dynamic testing of reachable parameters using approved security test cases.
  • Database and application monitoring for anomalous query patterns, repeated errors, or unexpected update activity.
  • Policy enforcement requiring prepared statements and input validation in application code.

Automated code review and software composition analysis tools may help identify

related injection patterns, but findings should be validated against the

application's data-access layer.

Sources

SourceLink
github.comgithub.com/huliangjia/cve/issues/7
vuldb.comvuldb.com/cve/CVE-2026-95926
vuldb.comvuldb.com/submit/953308
vuldb.comvuldb.com/vuln/408548
vuldb.comvuldb.com/vuln/408548/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

It may be remotely exploitable when the affected update endpoint is reachable

over the network and the attacker satisfies any access controls imposed by

the deployment.

The available vulnerability information does not establish a universal

authentication requirement. It depends on whether the endpoint is protected

and how reviewer administration permissions are configured.

Use parameterized queries or prepared statements, validate identifier inputs

against an expected format, and enforce authorization before performing the

update.

Combine secure data-access APIs, least-privilege database accounts, focused

code review, automated static analysis, and monitoring for abnormal database

activity.

Find out what's already
exploitable in your codebase.