/

CVE-2026-95925

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Reviewer Databank

CVE-2026-95925

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database Query Manipulation and Unauthorized Data Access

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 Online Reviewer Management System 1.0 assessment databank update function. An unauthenticated or otherwise reachable attacker may be able to manipulate the difficulty_id parameter to alter database queries when the endpoint is accessible remotely.

Affected context

The vulnerability occurs in the assessment databank administration functionality at reviewer_0/admins/assessments/databank/btn_functions.php?action=update. It is relevant when the update endpoint is remotely reachable and the difficulty_id value is incorporated into database operations without sufficient parameterization or validation.

Exploit preconditions

  • Attack surface: Remotely accessible HTTP endpoint for assessment databank updates
  • Required access: Access sufficient to submit requests to the affected function; authentication requirements depend on the application's access controls
  • Trigger point: Processing of the difficulty_id argument during an update request
  • Why exploitation is possible: User-controlled input may influence a database query without adequate separation between data and SQL command structure

Why this happens

The underlying bug is an injection flaw in which application input is used to construct or influence SQL statements without reliable parameter binding and context-aware validation. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection) and more broadly to CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component. The insecure pattern occurs when request parameters are treated as trusted query fragments rather than strictly typed data.

Potential impact

  • An attacker may read unauthorized database records
  • An attacker could modify or delete application data
  • The vulnerability may enable authentication or authorization data exposure
  • Database availability could be affected through disruptive queries
  • Compromised data could undermine reviewer, assessment, or administrative workflows

General mitigation guidance

Mitigation generally centers on ensuring that all database access treats request values as data rather than executable query syntax.

Common defensive patterns include:

  • Using parameterized queries or prepared statements for every database operation
  • Applying strict allowlist validation and type enforcement to identifiers such as difficulty_id
  • Reducing database account privileges to only the operations required by the application
  • Avoiding dynamic SQL construction where a fixed query or safe query builder can be used
  • Returning generic errors that do not disclose database details
  • Applying layered authorization controls to administrative update functions

How teams detect issues like this

Detection approaches may include:

  • Static analysis for string concatenation or interpolation involving request parameters in SQL calls
  • Code review checks for database APIs that do not use parameter binding
  • Testing that identifier fields are parsed as expected primitive types before query execution
  • Web application monitoring for anomalous requests targeting the assessment databank update endpoint
  • Database audit logging for unexpected query patterns, authorization failures, or unusual data changes
  • Policy enforcement requiring prepared statements and approved data-access libraries

Sources

SourceLink
github.comgithub.com/huliangjia/cve/issues/5
vuldb.comvuldb.com/cve/CVE-2026-95925
vuldb.comvuldb.com/submit/953304
vuldb.comvuldb.com/vuln/408547
vuldb.comvuldb.com/vuln/408547/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

Yes, the affected function is exposed through a web endpoint and the vulnerability can be triggered remotely when the endpoint is reachable. The practical scope depends on authentication, authorization, network exposure, and other deployment controls.

The available description does not establish whether authentication is required. Access to the endpoint and permission checks around the administrative function determine the effective prerequisite.

Use parameterized queries or prepared statements, enforce strict type and allowlist validation for difficulty_id, and apply least-privilege permissions to the database account.

Standardize safe database-access libraries, prohibit query construction from untrusted strings, require security-focused code review, and monitor application and database logs for suspicious input and query behavior.

Find out what's already
exploitable in your codebase.