/

CVE-2026-105471

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Appointment Booking

CVE-2026-105471

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

A SQL injection vulnerability in the Registration Handler's signup.php file allows crafted input in the fname argument to influence database queries. Because the affected registration endpoint is remotely reachable, an attacker may be able to read, alter, or otherwise interact with backend data.

A SQL injection vulnerability in the Registration Handler's signup.php file allows crafted input in the fname argument to influence database queries. Because the affected registration endpoint is remotely reachable, an attacker may be able to read, alter, or otherwise interact with backend data.

Affected context

The issue occurs in deployments of girishsaraf Online-Appointment-Booking-System where the signup.php registration handler processes the fname parameter and incorporates it into database operations without sufficient separation between user input and query structure. Exposure is most relevant when the registration endpoint is reachable over a network and the application database account has meaningful privileges.

The issue occurs in deployments of girishsaraf Online-Appointment-Booking-System where the signup.php registration handler processes the fname parameter and incorporates it into database operations without sufficient separation between user input and query structure. Exposure is most relevant when the registration endpoint is reachable over a network and the application database account has meaningful privileges.

Exploit preconditions

  • Attack surface: The remotely accessible registration handler in signup.php
  • Required access: Ability to submit requests to the registration endpoint; prior authentication may not be required
  • Trigger point: Processing of the fname argument during account registration
  • Why exploitation is possible: User-controlled input can influence SQL statement behavior when it is not safely parameterized or otherwise constrained
  • Attack surface: The remotely accessible registration handler in signup.php
  • Required access: Ability to submit requests to the registration endpoint; prior authentication may not be required
  • Trigger point: Processing of the fname argument during account registration
  • Why exploitation is possible: User-controlled input can influence SQL statement behavior when it is not safely parameterized or otherwise constrained

Why this happens

The underlying bug is an input-to-query trust violation in which externally supplied data is treated as part of SQL command structure. This commonly results from string concatenation, inadequate parameter binding, or incomplete input validation in database access code. It maps directly to CWE-89, SQL Injection; CWE-74 is also relevant as a broader improper control of command or query elements.

The underlying bug is an input-to-query trust violation in which externally supplied data is treated as part of SQL command structure. This commonly results from string concatenation, inadequate parameter binding, or incomplete input validation in database access code. It maps directly to CWE-89, SQL Injection; CWE-74 is also relevant as a broader improper control of command or query elements.

Potential impact

  • An attacker may retrieve sensitive records from the application database.
  • An attacker could modify, insert, or delete database content, depending on query context and account privileges.
  • The vulnerability may enable unauthorized account or appointment changes.
  • Database availability may be affected through destructive or resource-intensive queries.
  • Exposed data could support further attacks against users or connected systems.
  • An attacker may retrieve sensitive records from the application database.
  • An attacker could modify, insert, or delete database content, depending on query context and account privileges.
  • The vulnerability may enable unauthorized account or appointment changes.
  • Database availability may be affected through destructive or resource-intensive queries.
  • Exposed data could support further attacks against users or connected systems.

General mitigation guidance

Mitigation generally focuses on ensuring that user input cannot alter query

structure and that database access is constrained.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for every database operation.
  • Apply allowlist-based validation for fields such as names, while treating validation as a secondary control rather than a substitute for parameterization.
  • Centralize database access through APIs or data-access layers that make unsafe query construction difficult.
  • Run the application with a database account limited to the operations and tables it requires.
  • Avoid exposing detailed database errors to users and use generic error handling at the application boundary.
  • Preserve audit logging and monitor registration-related database activity.

Mitigation generally focuses on ensuring that user input cannot alter query

structure and that database access is constrained.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for every database operation.
  • Apply allowlist-based validation for fields such as names, while treating validation as a secondary control rather than a substitute for parameterization.
  • Centralize database access through APIs or data-access layers that make unsafe query construction difficult.
  • Run the application with a database account limited to the operations and tables it requires.
  • Avoid exposing detailed database errors to users and use generic error handling at the application boundary.
  • Preserve audit logging and monitor registration-related database activity.

How teams detect issues like this

Organizations can identify similar issues through:

  • Static analysis rules that flag SQL string concatenation involving request parameters.
  • Code review checks for direct use of $_GET, $_POST, or equivalent request values in database queries.
  • Testing that verifies all query parameters are bound through the database library's parameterized interface.
  • Dynamic application testing using non-destructive injection indicators in authorized test environments.
  • Web application firewall or API policy rules that monitor anomalous input and repeated database errors.
  • Automated security review tools that identify tainted data flows from request handlers to SQL execution.

Organizations can identify similar issues through:

  • Static analysis rules that flag SQL string concatenation involving request parameters.
  • Code review checks for direct use of $_GET, $_POST, or equivalent request values in database queries.
  • Testing that verifies all query parameters are bound through the database library's parameterized interface.
  • Dynamic application testing using non-destructive injection indicators in authorized test environments.
  • Web application firewall or API policy rules that monitor anomalous input and repeated database errors.
  • Automated security review tools that identify tainted data flows from request handlers to SQL execution.

Sources

SourceLink
github.comgithub.com/girishsaraf/Online-Appointment-Booking-System/
github.comgithub.com/girishsaraf/Online-Appointment-Booking-System/issues/9
vuldb.comvuldb.com/cve/CVE-2026-105471
vuldb.comvuldb.com/submit/984337
vuldb.comvuldb.com/vuln/413617
vuldb.comvuldb.com/vuln/413617/cti

Frequently asked

questions

Yes. The reported attack surface is the remotely reachable registration handler,

although effective exploitability depends on deployment exposure and database

configuration.

Not necessarily. If signup.php accepts unauthenticated registration requests,

the endpoint may be reachable before login; access controls and deployment

design determine the actual requirement.

Use parameterized queries or prepared statements and ensure that database

credentials have only the minimum required privileges.

Combine secure database APIs with allowlist validation, taint-flow analysis,

focused code review, security testing, and monitoring for abnormal query or

registration activity.

Yes. The reported attack surface is the remotely reachable registration handler,

although effective exploitability depends on deployment exposure and database

configuration.

Not necessarily. If signup.php accepts unauthenticated registration requests,

the endpoint may be reachable before login; access controls and deployment

design determine the actual requirement.

Use parameterized queries or prepared statements and ensure that database

credentials have only the minimum required privileges.

Combine secure database APIs with allowlist validation, taint-flow analysis,

focused code review, security testing, and monitoring for abnormal query or

registration activity.

Find out what's already
exploitable in your codebase.