/

CVE-2026-108956

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Reviewer User Handler

CVE-2026-108956

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database Compromise

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 high-severity SQL injection vulnerability affects the user update handler in code-projects Online Reviewer System 1.0. An attacker who can reach the handler remotely may manipulate database queries, potentially accessing, changing, or disrupting application data; public exploit availability increases the risk.

A high-severity SQL injection vulnerability affects the user update handler in code-projects Online Reviewer System 1.0. An attacker who can reach the handler remotely may manipulate database queries, potentially accessing, changing, or disrupting application data; public exploit availability increases the risk.

Affected context

The issue occurs in the administrative user-management functionality at

/reviewer/system/system/admins/manage/users/btn_functions.php. It may affect deployments where remotely supplied user-update values are incorporated into database queries without adequate parameterization, context-aware validation, or authorization controls.

The issue occurs in the administrative user-management functionality at

/reviewer/system/system/admins/manage/users/btn_functions.php. It may affect deployments where remotely supplied user-update values are incorporated into database queries without adequate parameterization, context-aware validation, or authorization controls.

Exploit preconditions

  • Attack surface: Remotely reachable user update functionality
  • Required access: Access sufficient to submit requests to the affected handler; the exact authentication requirement depends on deployment configuration
  • Trigger point: Processing of user-update input by the database query path
  • Why exploitation is possible: Attacker-controlled input may influence SQL syntax when query construction does not reliably separate data from executable database commands
  • Attack surface: Remotely reachable user update functionality
  • Required access: Access sufficient to submit requests to the affected handler; the exact authentication requirement depends on deployment configuration
  • Trigger point: Processing of user-update input by the database query path
  • Why exploitation is possible: Attacker-controlled input may influence SQL syntax when query construction does not reliably separate data from executable database commands

Why this happens

The underlying bug is an injection flaw in which externally supplied input is incorporated into SQL statements without a sufficiently strong separation between data and query structure. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection). The related CWE-74 classification reflects the broader failure to neutralize input before it reaches an interpreter.

The underlying bug is an injection flaw in which externally supplied input is incorporated into SQL statements without a sufficiently strong separation between data and query structure. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection). The related CWE-74 classification reflects the broader failure to neutralize input before it reaches an interpreter.

Potential impact

  • An attacker may read sensitive records from the application database
  • Database contents could be modified, deleted, or corrupted
  • Authentication, authorization, or user-management data could be affected
  • The application may experience data exposure or service disruption
  • Database compromise could enable further attacks against connected systems
  • An attacker may read sensitive records from the application database
  • Database contents could be modified, deleted, or corrupted
  • Authentication, authorization, or user-management data could be affected
  • The application may experience data exposure or service disruption
  • Database compromise could enable further attacks against connected systems

General mitigation guidance

Mitigation generally centers on ensuring that user-controlled values cannot alter SQL statement structure.

Defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist validation appropriate to each field's expected type and format
  • Avoid assembling SQL statements through string concatenation or interpolation
  • Enforce authorization checks at the server-side handler and database-operation layers
  • Apply least-privilege permissions to the application database account
  • Limit database access to only the schemas and operations required by the application
  • Use secure-by-default data-access abstractions that separate query code from values

Mitigation generally centers on ensuring that user-controlled values cannot alter SQL statement structure.

Defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist validation appropriate to each field's expected type and format
  • Avoid assembling SQL statements through string concatenation or interpolation
  • Enforce authorization checks at the server-side handler and database-operation layers
  • Apply least-privilege permissions to the application database account
  • Limit database access to only the schemas and operations required by the application
  • Use secure-by-default data-access abstractions that separate query code from values

How teams detect issues like this

Detection approaches may include:

  • Static analysis rules identifying SQL construction through concatenation, interpolation, or unchecked request parameters
  • Code review checks for missing prepared statements and weak authorization around administrative handlers
  • Dynamic application testing that monitors database errors, unexpected query behavior, and input-to-query data flow
  • Web application firewall or API policy rules for suspicious injection patterns, treated as defense in depth rather than a primary fix
  • Database activity monitoring for unusual reads, writes, schema access, or account behavior
  • Automated security review tools that flag unsafely constructed queries and missing input validation

Detection approaches may include:

  • Static analysis rules identifying SQL construction through concatenation, interpolation, or unchecked request parameters
  • Code review checks for missing prepared statements and weak authorization around administrative handlers
  • Dynamic application testing that monitors database errors, unexpected query behavior, and input-to-query data flow
  • Web application firewall or API policy rules for suspicious injection patterns, treated as defense in depth rather than a primary fix
  • Database activity monitoring for unusual reads, writes, schema access, or account behavior
  • Automated security review tools that flag unsafely constructed queries and missing input validation

Sources

SourceLink
code-projects.orgcode-projects.org/
github.comgithub.com/thuong2206/Unauthenticated-SQL-Injection-in-Online-Reviewer-System
vuldb.comvuldb.com/cve/CVE-2026-108956
vuldb.comvuldb.com/submit/997845
vuldb.comvuldb.com/vuln/416775
vuldb.comvuldb.com/vuln/416775/cti

Frequently asked

questions

It may be remotely exploitable when the affected user-update handler is accessible over the application interface and attacker-controlled values reach its database operations.

The requirement depends on how the administrative route is exposed and protected. Authentication or authorization may reduce exposure, but it should not replace safe query construction.

Use parameterized queries or prepared statements, validate values according to their intended types, and ensure the handler performs server-side authorization checks.

Standardize secure data-access APIs, prohibit dynamic SQL construction with untrusted input, review administrative endpoints, apply least-privilege database accounts, and test query paths during development and CI.

It may be remotely exploitable when the affected user-update handler is accessible over the application interface and attacker-controlled values reach its database operations.

The requirement depends on how the administrative route is exposed and protected. Authentication or authorization may reduce exposure, but it should not replace safe query construction.

Use parameterized queries or prepared statements, validate values according to their intended types, and ensure the handler performs server-side authorization checks.

Standardize secure data-access APIs, prohibit dynamic SQL construction with untrusted input, review administrative endpoints, apply least-privilege database accounts, and test query paths during development and CI.

Find out what's already
exploitable in your codebase.