/

CVE-2026-108968

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Performance Indicator System

CVE-2026-108968

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Unauthorized database access and 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 SourceCodester Performance Indicator System 1.0 may allow an attacker to alter database queries through the ID argument processed by the staff sales history endpoint. Because the affected function is remotely reachable, exploitation could expose or modify database information when user-controlled input is incorporated into queries without adequate safeguards.

A SQL injection vulnerability in the SourceCodester Performance Indicator System 1.0 may allow an attacker to alter database queries through the ID argument processed by the staff sales history endpoint. Because the affected function is remotely reachable, exploitation could expose or modify database information when user-controlled input is incorporated into queries without adequate safeguards.

Affected context

The weakness occurs in the staff sales history functionality at /opils/staff/sales_history.php. It becomes risky when the endpoint accepts a remotely supplied ID value and the application constructs database statements from that value without parameterization or effective input validation. The practical impact depends on database permissions and the access controls protecting the endpoint.

The weakness occurs in the staff sales history functionality at /opils/staff/sales_history.php. It becomes risky when the endpoint accepts a remotely supplied ID value and the application constructs database statements from that value without parameterization or effective input validation. The practical impact depends on database permissions and the access controls protecting the endpoint.

Exploit preconditions

  • Attack surface: The remotely accessible staff sales history endpoint.
  • Required access: The endpoint must be reachable, with authentication

requirements depending on the deployment's access controls.

  • Trigger point: Processing of the ID argument by

/opils/staff/sales_history.php.

  • Why exploitation is possible: User-controlled input may influence a

database query without being safely separated from SQL syntax.

  • Attack surface: The remotely accessible staff sales history endpoint.
  • Required access: The endpoint must be reachable, with authentication

requirements depending on the deployment's access controls.

  • Trigger point: Processing of the ID argument by

/opils/staff/sales_history.php.

  • Why exploitation is possible: User-controlled input may influence a

database query without being safely separated from SQL syntax.

Why this happens

The underlying issue is an injection flaw in which externally controlled input is incorporated into a database query as trusted query language. Without parameterized queries or equivalent query construction safeguards, an attacker may influence the statement's intended logic. This maps primarily to CWE-89, SQL Injection; CWE-74 broadly describes the interpretation of externally controlled input as part of an executable language or command.

The underlying issue is an injection flaw in which externally controlled input is incorporated into a database query as trusted query language. Without parameterized queries or equivalent query construction safeguards, an attacker may influence the statement's intended logic. This maps primarily to CWE-89, SQL Injection; CWE-74 broadly describes the interpretation of externally controlled input as part of an executable language or command.

Potential impact

  • An attacker may retrieve unauthorized application or business data.
  • Database records could be altered, deleted, or corrupted.
  • The vulnerability could enable unauthorized changes to application state.
  • Sensitive information could be exposed, depending on database privileges.
  • Further compromise may be possible if the application account has excessive

database permissions.

  • An attacker may retrieve unauthorized application or business data.
  • Database records could be altered, deleted, or corrupted.
  • The vulnerability could enable unauthorized changes to application state.
  • Sensitive information could be exposed, depending on database privileges.
  • Further compromise may be possible if the application account has excessive

database permissions.

General mitigation guidance

Mitigation generally focuses on separating data from query instructions and

reducing the trust placed in request parameters.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database access.
  • Apply allowlisted validation for identifiers that are expected to have a

specific format or type.

  • Avoid dynamically assembled SQL and use safe query-builder abstractions

where appropriate.

  • Enforce authorization checks independently of database query construction.
  • Run the application with the minimum database privileges required.
  • Use centralized error handling that does not disclose query details.

Mitigation generally focuses on separating data from query instructions and

reducing the trust placed in request parameters.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database access.
  • Apply allowlisted validation for identifiers that are expected to have a

specific format or type.

  • Avoid dynamically assembled SQL and use safe query-builder abstractions

where appropriate.

  • Enforce authorization checks independently of database query construction.
  • Run the application with the minimum database privileges required.
  • Use centralized error handling that does not disclose query details.

How teams detect issues like this

Detection can include:

  • Static analysis rules that identify string concatenation or interpolation

of request parameters in SQL statements.

  • Code review checks for direct use of ID and similar parameters in query

construction.

  • Dynamic application testing that verifies malformed or unexpected

identifiers are rejected without changing query behavior.

  • Database monitoring for unusual query patterns, enumeration activity, or

unexpected data modification.

  • Policy enforcement requiring parameterized database APIs and security

review for externally reachable data-access endpoints.

Automated code review and security scanning tools may help identify these

patterns during development.

Detection can include:

  • Static analysis rules that identify string concatenation or interpolation

of request parameters in SQL statements.

  • Code review checks for direct use of ID and similar parameters in query

construction.

  • Dynamic application testing that verifies malformed or unexpected

identifiers are rejected without changing query behavior.

  • Database monitoring for unusual query patterns, enumeration activity, or

unexpected data modification.

  • Policy enforcement requiring parameterized database APIs and security

review for externally reachable data-access endpoints.

Automated code review and security scanning tools may help identify these

patterns during development.

Sources

SourceLink
github.comgithub.com/hubdk01/cve/issues/10
vuldb.comvuldb.com/cve/CVE-2026-108968
vuldb.comvuldb.com/submit/999146
vuldb.comvuldb.com/vuln/416786
vuldb.comvuldb.com/vuln/416786/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

Yes. The affected sales history functionality is described as remotely

reachable, although practical exploitability depends on endpoint exposure,

authentication, and authorization controls.

Not necessarily. The required access depends on how the application protects

the staff endpoint and whether an attacker can reach it with valid

credentials or another permitted session.

Use parameterized queries or prepared statements, validate identifier values

against an appropriate allowlist, and enforce authorization separately from

query construction.

Standardize safe database-access patterns, prohibit SQL string concatenation

with request data, apply least-privilege database permissions, and include

static analysis and security testing in the development lifecycle.

Yes. The affected sales history functionality is described as remotely

reachable, although practical exploitability depends on endpoint exposure,

authentication, and authorization controls.

Not necessarily. The required access depends on how the application protects

the staff endpoint and whether an attacker can reach it with valid

credentials or another permitted session.

Use parameterized queries or prepared statements, validate identifier values

against an appropriate allowlist, and enforce authorization separately from

query construction.

Standardize safe database-access patterns, prohibit SQL string concatenation

with request data, apply least-privilege database permissions, and include

static analysis and security testing in the development lifecycle.

Find out what's already
exploitable in your codebase.