/

CVE-2026-116062

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in SourceCodester OPILS System

CVE-2026-116062

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Unauthorized database 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 Performance Indicator System 1.0 contains a SQL injection vulnerability in the remote staff profile-saving functionality. An attacker may manipulate the Contact parameter to influence database queries, potentially exposing or altering application data when the endpoint is reachable and input is not safely handled.

SourceCodester Performance Indicator System 1.0 contains a SQL injection vulnerability in the remote staff profile-saving functionality. An attacker may manipulate the Contact parameter to influence database queries, potentially exposing or altering application data when the endpoint is reachable and input is not safely handled.

Affected context

The issue is associated with the /opils/staff/save_profile.php endpoint in SourceCodester Performance Indicator System 1.0. It becomes risky when the endpoint is remotely accessible and the Contact value reaches database query construction without adequate parameterization, validation, or other query-boundary protections.

The issue is associated with the /opils/staff/save_profile.php endpoint in SourceCodester Performance Indicator System 1.0. It becomes risky when the endpoint is remotely accessible and the Contact value reaches database query construction without adequate parameterization, validation, or other query-boundary protections.

Exploit preconditions

  • Attack surface: A remotely reachable staff profile-saving endpoint
  • Required access: Access sufficient to submit or influence profile data; the exact authorization requirement depends on deployment controls
  • Trigger point: Processing of the Contact argument by /opils/staff/save_profile.php
  • Why exploitation is possible: User-controlled input may be incorporated into a database operation without reliably separating data from SQL syntax
  • Attack surface: A remotely reachable staff profile-saving endpoint
  • Required access: Access sufficient to submit or influence profile data; the exact authorization requirement depends on deployment controls
  • Trigger point: Processing of the Contact argument by /opils/staff/save_profile.php
  • Why exploitation is possible: User-controlled input may be incorporated into a database operation without reliably separating data from SQL syntax

Why this happens

The underlying bug is an injection flaw in which externally supplied input can affect the structure or behavior of a database query. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection) and relates to CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component. The insecure pattern is constructing or executing SQL with untrusted values rather than binding them as data through a parameterized interface.

The underlying bug is an injection flaw in which externally supplied input can affect the structure or behavior of a database query. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection) and relates to CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component. The insecure pattern is constructing or executing SQL with untrusted values rather than binding them as data through a parameterized interface.

Potential impact

  • An attacker may read sensitive records from the application database
  • An attacker could modify, insert, or delete database content, subject to database permissions
  • The vulnerability may enable authentication or authorization data tampering
  • Sensitive application information could be exposed
  • Database availability or application integrity may be affected
  • An attacker may read sensitive records from the application database
  • An attacker could modify, insert, or delete database content, subject to database permissions
  • The vulnerability may enable authentication or authorization data tampering
  • Sensitive application information could be exposed
  • Database availability or application integrity may be affected

General mitigation guidance

Mitigation generally focuses on ensuring that untrusted input cannot alter query structure.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist-based validation appropriate to the Contact field's expected format
  • Keep input handling separate from SQL construction rather than relying only on escaping
  • Use database accounts with the minimum permissions required by the application
  • Avoid exposing administrative or profile-management endpoints more broadly than necessary
  • Apply consistent authorization checks and secure error handling around profile updates

Mitigation generally focuses on ensuring that untrusted input cannot alter query structure.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist-based validation appropriate to the Contact field's expected format
  • Keep input handling separate from SQL construction rather than relying only on escaping
  • Use database accounts with the minimum permissions required by the application
  • Avoid exposing administrative or profile-management endpoints more broadly than necessary
  • Apply consistent authorization checks and secure error handling around profile updates

How teams detect issues like this

Detection approaches may include:

  • Static analysis rules identifying string concatenation or interpolation in SQL execution paths
  • Code review checks for database calls that receive request parameters without binding
  • Testing of profile-management endpoints with representative malformed and boundary inputs
  • Web application firewall or database monitoring policies for anomalous query patterns
  • Logging and alerting for unexpected profile-update activity and database errors
  • Automated security review tools that flag CWE-89 and related injection patterns

Detection approaches may include:

  • Static analysis rules identifying string concatenation or interpolation in SQL execution paths
  • Code review checks for database calls that receive request parameters without binding
  • Testing of profile-management endpoints with representative malformed and boundary inputs
  • Web application firewall or database monitoring policies for anomalous query patterns
  • Logging and alerting for unexpected profile-update activity and database errors
  • Automated security review tools that flag CWE-89 and related injection patterns

Sources

SourceLink
github.comgithub.com/hubdk01/cve/issues/13
vuldb.comvuldb.com/cve/CVE-2026-116062
vuldb.comvuldb.com/submit/999430
vuldb.comvuldb.com/vuln/426145
vuldb.comvuldb.com/vuln/426145/cti
sourcecodester.comsourcecodester.com/

Frequently asked

questions

It may be remotely exploitable when the affected profile-saving endpoint is reachable over the network and the attacker can submit or influence the Contact parameter. Deployment-specific authentication and authorization controls may limit the scope.

The available information does not establish a definitive authentication requirement. The relevant prerequisite is the ability to reach the endpoint and provide input accepted by the profile-processing workflow.

The safest general pattern is to use parameterized database queries, validate the Contact value according to its expected format, and ensure the database account has only required privileges.

Use secure database APIs by default, prohibit SQL construction from untrusted strings, review all request-to-query data flows, and combine code analysis with runtime monitoring and authorization controls.

It may be remotely exploitable when the affected profile-saving endpoint is reachable over the network and the attacker can submit or influence the Contact parameter. Deployment-specific authentication and authorization controls may limit the scope.

The available information does not establish a definitive authentication requirement. The relevant prerequisite is the ability to reach the endpoint and provide input accepted by the profile-processing workflow.

The safest general pattern is to use parameterized database queries, validate the Contact value according to its expected format, and ensure the database account has only required privileges.

Use secure database APIs by default, prohibit SQL construction from untrusted strings, review all request-to-query data flows, and combine code analysis with runtime monitoring and authorization controls.

Find out what's already
exploitable in your codebase.