/

CVE-2026-105387

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Appointment System

CVE-2026-105387

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database compromise and authentication bypass

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 remotely exploitable SQL injection flaw affects the Patient Login Handler in girishsaraf Online-Appointment-Booking-System. Unsafely processed uname and psw values may allow an attacker to alter database queries, potentially bypass authentication or access and modify stored data.

A remotely exploitable SQL injection flaw affects the Patient Login Handler in girishsaraf Online-Appointment-Booking-System. Unsafely processed uname and psw values may allow an attacker to alter database queries, potentially bypass authentication or access and modify stored data.

Affected context

The vulnerability occurs in the Patient Login Handler, specifically in cover.php, where login-related values are passed to mysqli_query. It may affect deployments using rolling-release code at or before the identified commit when the uname and psw inputs are incorporated into database queries without reliable parameterization or equivalent safeguards.

The vulnerability occurs in the Patient Login Handler, specifically in cover.php, where login-related values are passed to mysqli_query. It may affect deployments using rolling-release code at or before the identified commit when the uname and psw inputs are incorporated into database queries without reliable parameterization or equivalent safeguards.

Exploit preconditions

  • Attack surface: The remotely accessible patient login endpoint
  • Required access: No authenticated account may be required if the login handler is publicly reachable
  • Trigger point: Processing of the uname or psw request parameters
  • Why exploitation is possible: User-controlled values may influence SQL query construction before being safely separated from query logic
  • Attack surface: The remotely accessible patient login endpoint
  • Required access: No authenticated account may be required if the login handler is publicly reachable
  • Trigger point: Processing of the uname or psw request parameters
  • Why exploitation is possible: User-controlled values may influence SQL query construction before being safely separated from query logic

Why this happens

The underlying issue is the unsafe composition of SQL statements from externally supplied login parameters. When application data is treated as part of query syntax instead of being bound as data, an attacker may influence database operations. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection); CWE-74 broadly describes improper neutralization in an interpreter context.

The underlying issue is the unsafe composition of SQL statements from externally supplied login parameters. When application data is treated as part of query syntax instead of being bound as data, an attacker may influence database operations. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection); CWE-74 broadly describes improper neutralization in an interpreter context.

Potential impact

  • An attacker may bypass patient authentication
  • Sensitive patient or appointment data could be disclosed
  • Database records may be altered or deleted
  • Application availability could be degraded
  • Database credentials or privileges could enable broader compromise
  • An attacker may bypass patient authentication
  • Sensitive patient or appointment data could be disclosed
  • Database records may be altered or deleted
  • Application availability could be degraded
  • Database credentials or privileges could enable broader compromise

General mitigation guidance

Mitigation generally focuses on separating SQL code from user-supplied data and reducing the trust placed in login inputs.

Common defensive patterns include:

  • Using parameterized queries or prepared statements for every database operation
  • Applying allowlist validation appropriate to each input field
  • Avoiding string concatenation when constructing SQL statements
  • Limiting the database account to the minimum required permissions
  • Returning generic authentication errors and avoiding detailed database messages
  • Protecting database credentials and restricting database network exposure
  • Applying security checks consistently across rolling-release deployment workflows

Mitigation generally focuses on separating SQL code from user-supplied data and reducing the trust placed in login inputs.

Common defensive patterns include:

  • Using parameterized queries or prepared statements for every database operation
  • Applying allowlist validation appropriate to each input field
  • Avoiding string concatenation when constructing SQL statements
  • Limiting the database account to the minimum required permissions
  • Returning generic authentication errors and avoiding detailed database messages
  • Protecting database credentials and restricting database network exposure
  • Applying security checks consistently across rolling-release deployment workflows

How teams detect issues like this

Organizations can assess for this class of issue through:

  • Static analysis rules identifying SQL construction through string concatenation or interpolation
  • Code review of all database calls that process request parameters
  • Tests using unexpected input types and boundary values without relying on production data
  • Web application monitoring for anomalous login requests, database errors, and unusual query behavior
  • Policy enforcement requiring prepared statements or approved database-access abstractions
  • Neutral automated code-review tools that flag unsafely constructed SQL queries

Organizations can assess for this class of issue through:

  • Static analysis rules identifying SQL construction through string concatenation or interpolation
  • Code review of all database calls that process request parameters
  • Tests using unexpected input types and boundary values without relying on production data
  • Web application monitoring for anomalous login requests, database errors, and unusual query behavior
  • Policy enforcement requiring prepared statements or approved database-access abstractions
  • Neutral automated code-review tools that flag unsafely constructed SQL queries

Sources

SourceLink
github.comgithub.com/girishsaraf/Online-Appointment-Booking-System/
github.comgithub.com/girishsaraf/Online-Appointment-Booking-System/issues/5
vuldb.comvuldb.com/cve/CVE-2026-105387
vuldb.comvuldb.com/submit/980739
vuldb.comvuldb.com/vuln/413581
vuldb.comvuldb.com/vuln/413581/cti

Frequently asked

questions

Yes. The affected patient login handler is described as remotely reachable, and exploitation may occur through request values processed by that endpoint.

Not necessarily. Because the flaw is associated with a login handler, an unauthenticated attacker may be able to reach the vulnerable processing path if the endpoint is publicly exposed.

Use parameterized queries or prepared statements so input values cannot alter SQL structure, alongside appropriate validation and restricted database privileges.

Standardize secure database-access APIs, review all externally influenced query paths, add automated static-analysis checks, monitor database errors, and enforce least privilege for application database accounts.

Yes. The affected patient login handler is described as remotely reachable, and exploitation may occur through request values processed by that endpoint.

Not necessarily. Because the flaw is associated with a login handler, an unauthenticated attacker may be able to reach the vulnerable processing path if the endpoint is publicly exposed.

Use parameterized queries or prepared statements so input values cannot alter SQL structure, alongside appropriate validation and restricted database privileges.

Standardize secure database-access APIs, review all externally influenced query paths, add automated static-analysis checks, monitor database errors, and enforce least privilege for application database accounts.

Find out what's already
exploitable in your codebase.