/

CVE-2026-108964

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Performance Indicator System

CVE-2026-108964

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Unauthorized Database 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 product category handling in SourceCodester Performance Indicator System 1.0. A remote attacker may be able to manipulate database queries through the prodcategory parameter when the vulnerable administrative endpoint is reachable and input is not safely handled.

A high-severity SQL injection vulnerability affects the product category handling in SourceCodester Performance Indicator System 1.0. A remote attacker may be able to manipulate database queries through the prodcategory parameter when the vulnerable administrative endpoint is reachable and input is not safely handled.

Affected context

The vulnerability occurs in the administrative product-management functionality at /opils/admin/addproduct.php. It becomes risky when the endpoint is remotely reachable and the prodcategory argument is incorporated into database operations without effective parameterization or equivalent query-safety controls. Exploitability may also depend on authentication, authorization, and deployment exposure.

The vulnerability occurs in the administrative product-management functionality at /opils/admin/addproduct.php. It becomes risky when the endpoint is remotely reachable and the prodcategory argument is incorporated into database operations without effective parameterization or equivalent query-safety controls. Exploitability may also depend on authentication, authorization, and deployment exposure.

Exploit preconditions

  • Attack surface: The remotely accessible administrative product-creation endpoint
  • Required access: Any access level permitted to reach and submit requests to the affected functionality, depending on deployment controls
  • Trigger point: Processing of the prodcategory parameter in addproduct.php
  • Why exploitation is possible: User-controlled input may influence a database query without sufficient separation between data and SQL commands
  • Attack surface: The remotely accessible administrative product-creation endpoint
  • Required access: Any access level permitted to reach and submit requests to the affected functionality, depending on deployment controls
  • Trigger point: Processing of the prodcategory parameter in addproduct.php
  • Why exploitation is possible: User-controlled input may influence a database query without sufficient separation between data and SQL commands

Why this happens

The underlying bug is improper neutralization of special elements in database-related input. If the application constructs SQL statements by combining the prodcategory value with query text, attacker-controlled data can alter the intended query logic. This maps primarily to CWE-89, SQL Injection, and is also related to CWE-74, Improper Neutralization of Special Elements in Output Used by a Downstream Component.

The underlying bug is improper neutralization of special elements in database-related input. If the application constructs SQL statements by combining the prodcategory value with query text, attacker-controlled data can alter the intended query logic. This maps primarily to CWE-89, SQL Injection, and is also related to CWE-74, Improper Neutralization of Special Elements in Output Used by a Downstream Component.

Potential impact

  • An attacker may read unauthorized database records.
  • An attacker could modify or delete application data.
  • The vulnerability may enable authentication or authorization bypasses if sensitive queries are affected.
  • Database availability or integrity can be disrupted.
  • Exposed database credentials or connected services could increase the scope of compromise.
  • An attacker may read unauthorized database records.
  • An attacker could modify or delete application data.
  • The vulnerability may enable authentication or authorization bypasses if sensitive queries are affected.
  • Database availability or integrity can be disrupted.
  • Exposed database credentials or connected services could increase the scope of compromise.

General mitigation guidance

Mitigation generally centers on ensuring that database commands and user data

remain separate.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations.
  • Apply allowlist validation for product-category values where the business model permits it.
  • Avoid dynamically concatenating request parameters into SQL statements.
  • Use database accounts with only the permissions required by the application.
  • Treat administrative endpoints as protected resources with strong authentication and authorization.
  • Reduce trust in client-supplied values by deriving identifiers or categories from controlled server-side data where practical.
  • Return generic database errors to users while recording useful security-relevant events internally.

Mitigation generally centers on ensuring that database commands and user data

remain separate.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations.
  • Apply allowlist validation for product-category values where the business model permits it.
  • Avoid dynamically concatenating request parameters into SQL statements.
  • Use database accounts with only the permissions required by the application.
  • Treat administrative endpoints as protected resources with strong authentication and authorization.
  • Reduce trust in client-supplied values by deriving identifiers or categories from controlled server-side data where practical.
  • Return generic database errors to users while recording useful security-relevant events internally.

How teams detect issues like this

Organizations can look for SQL injection risks through:

  • Static analysis rules identifying string concatenation or interpolation of request parameters in SQL statements.
  • Code review checks for database calls that do not use prepared statements or trusted query builders.
  • Dynamic testing with benign input-validation probes against authorized test environments.
  • Web-application firewall or API policy rules that detect anomalous query-like input patterns.
  • Monitoring for unusual database errors, query volume, record access, or administrative endpoint activity.
  • Automated security review tools that flag tainted data flows from HTTP parameters to database APIs.

Organizations can look for SQL injection risks through:

  • Static analysis rules identifying string concatenation or interpolation of request parameters in SQL statements.
  • Code review checks for database calls that do not use prepared statements or trusted query builders.
  • Dynamic testing with benign input-validation probes against authorized test environments.
  • Web-application firewall or API policy rules that detect anomalous query-like input patterns.
  • Monitoring for unusual database errors, query volume, record access, or administrative endpoint activity.
  • Automated security review tools that flag tainted data flows from HTTP parameters to database APIs.

Sources

SourceLink
github.comgithub.com/hubdk01/cve/issues/6
vuldb.comvuldb.com/cve/CVE-2026-108964
vuldb.comvuldb.com/submit/999100
vuldb.comvuldb.com/vuln/416782
vuldb.comvuldb.com/vuln/416782/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

It may be remotely exploitable when the affected administrative endpoint is

reachable and the attacker can submit requests that reach the vulnerable

parameter. Authentication and authorization controls may limit practical

exploitability.

The required access depends on how the application protects

/opils/admin/addproduct.php. The essential condition is the ability to

invoke the endpoint and influence the prodcategory input.

Use parameterized queries or prepared statements, validate inputs according

to the application's data model, and avoid building SQL through direct string

concatenation.

Combine secure database APIs with least-privilege database accounts, protected

administrative routes, code review, static analysis, authorized security

testing, and monitoring for suspicious query behavior.

It may be remotely exploitable when the affected administrative endpoint is

reachable and the attacker can submit requests that reach the vulnerable

parameter. Authentication and authorization controls may limit practical

exploitability.

The required access depends on how the application protects

/opils/admin/addproduct.php. The essential condition is the ability to

invoke the endpoint and influence the prodcategory input.

Use parameterized queries or prepared statements, validate inputs according

to the application's data model, and avoid building SQL through direct string

concatenation.

Combine secure database APIs with least-privilege database accounts, protected

administrative routes, code review, static analysis, authorized security

testing, and monitoring for suspicious query behavior.

Find out what's already
exploitable in your codebase.