/

CVE-2026-111873

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Online Exam System AJAX Endpoint

CVE-2026-111873

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Database compromise and unauthorized data 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 remotely reachable AJAX endpoint in itsmeravitejak Online-Examination-System improperly handles the subject argument used by the MySQLDB::topicslist function. An attacker may manipulate this input to alter database queries, potentially exposing, modifying, or deleting data when the endpoint is accessible.

A remotely reachable AJAX endpoint in itsmeravitejak Online-Examination-System improperly handles the subject argument used by the MySQLDB::topicslist function. An attacker may manipulate this input to alter database queries, potentially exposing, modifying, or deleting data when the endpoint is accessible.

Affected context

The issue occurs in the exammanger.php file, specifically in the MySQLDB::topicslist function exposed through the AJAX Endpoint. Deployments are at risk when the endpoint is remotely accessible and user-controlled subject input reaches database query construction without adequate parameterization or equivalent query separation.

The issue occurs in the exammanger.php file, specifically in the MySQLDB::topicslist function exposed through the AJAX Endpoint. Deployments are at risk when the endpoint is remotely accessible and user-controlled subject input reaches database query construction without adequate parameterization or equivalent query separation.

Exploit preconditions

  • Attack surface: Remotely accessible AJAX Endpoint
  • Required access: The ability to send requests to the affected endpoint; authentication requirements may depend on deployment configuration
  • Trigger point: Processing of the subject argument by MySQLDB::topicslist
  • Why exploitation is possible: Input is incorporated into database operations in a way that may allow query structure to be influenced by attacker-controlled data
  • Attack surface: Remotely accessible AJAX Endpoint
  • Required access: The ability to send requests to the affected endpoint; authentication requirements may depend on deployment configuration
  • Trigger point: Processing of the subject argument by MySQLDB::topicslist
  • Why exploitation is possible: Input is incorporated into database operations in a way that may allow query structure to be influenced by attacker-controlled data

Why this happens

The underlying bug is an SQL injection condition in which application input is trusted while constructing or executing a database query. When query structure and user-supplied values are not separated through parameterized statements or an equivalent safe abstraction, crafted input may be interpreted as SQL rather than as data. This maps primarily to CWE-89, while CWE-74 broadly covers injection into an interpreted language or command context.

The underlying bug is an SQL injection condition in which application input is trusted while constructing or executing a database query. When query structure and user-supplied values are not separated through parameterized statements or an equivalent safe abstraction, crafted input may be interpreted as SQL rather than as data. This maps primarily to CWE-89, while CWE-74 broadly covers injection into an interpreted language or command context.

Potential impact

  • An attacker may read sensitive examination or application data.
  • Database records could be altered or deleted.
  • Authentication or authorization data could be exposed or manipulated.
  • The application may experience service disruption.
  • Data integrity could be compromised through unauthorized query execution.
  • An attacker may read sensitive examination or application data.
  • Database records could be altered or deleted.
  • Authentication or authorization data could be exposed or manipulated.
  • The application may experience service disruption.
  • Data integrity could be compromised through unauthorized query execution.

General mitigation guidance

Mitigation generally focuses on separating SQL code from untrusted values

throughout the affected data-access path.

Common defensive patterns include:

  • Use parameterized queries, prepared statements, or a trusted query builder.
  • Treat all request parameters as untrusted, including values from apparently internal AJAX calls.
  • Apply allowlist validation and type constraints where the subject value has a defined format.
  • Use database accounts with only the permissions required by the endpoint.
  • Avoid exposing database errors or query details to clients.
  • Apply consistent input-handling and query-safety controls across rolling-release deployments.

Mitigation generally focuses on separating SQL code from untrusted values

throughout the affected data-access path.

Common defensive patterns include:

  • Use parameterized queries, prepared statements, or a trusted query builder.
  • Treat all request parameters as untrusted, including values from apparently internal AJAX calls.
  • Apply allowlist validation and type constraints where the subject value has a defined format.
  • Use database accounts with only the permissions required by the endpoint.
  • Avoid exposing database errors or query details to clients.
  • Apply consistent input-handling and query-safety controls across rolling-release deployments.

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules that identify string concatenation or interpolation in SQL execution paths.
  • Code review checks for request parameters reaching database APIs without bind variables.
  • Dynamic testing that submits unexpected values to exposed AJAX parameters and monitors query behavior.
  • Database and application logging for anomalous query patterns, repeated errors, or unusual data access.
  • Policy enforcement requiring parameterized database access in application code.

Automated code review and software composition analysis tools may help identify related injection patterns, but should be supplemented with endpoint-level testing.

Organizations can look for this class of issue through:

  • Static analysis rules that identify string concatenation or interpolation in SQL execution paths.
  • Code review checks for request parameters reaching database APIs without bind variables.
  • Dynamic testing that submits unexpected values to exposed AJAX parameters and monitors query behavior.
  • Database and application logging for anomalous query patterns, repeated errors, or unusual data access.
  • Policy enforcement requiring parameterized database access in application code.

Automated code review and software composition analysis tools may help identify related injection patterns, but should be supplemented with endpoint-level testing.

Sources

SourceLink
github.comgithub.com/itsmeravitejak/Online-Examination-System/
github.comgithub.com/itsmeravitejak/Online-Examination-System/issues/7
vuldb.comvuldb.com/cve/CVE-2026-111873
vuldb.comvuldb.com/submit/1005050
vuldb.comvuldb.com/vuln/421585
vuldb.comvuldb.com/vuln/421585/cti

Frequently asked

questions

Potentially. The affected functionality is exposed through an AJAX endpoint, so exploitation may be possible over the network when the endpoint is reachable and the required access conditions are met.

The available description does not establish a universal authentication requirement. The decisive factors are whether the endpoint is reachable and what authentication or authorization controls the deployment applies.

Use parameterized queries or prepared statements so that the subject value is handled strictly as data, combined with suitable validation and restricted database privileges.

Enforce secure database-access patterns in code review and CI policies, test every externally influenced query parameter, minimize database permissions, and monitor application and database logs for injection indicators.

Potentially. The affected functionality is exposed through an AJAX endpoint, so exploitation may be possible over the network when the endpoint is reachable and the required access conditions are met.

The available description does not establish a universal authentication requirement. The decisive factors are whether the endpoint is reachable and what authentication or authorization controls the deployment applies.

Use parameterized queries or prepared statements so that the subject value is handled strictly as data, combined with suitable validation and restricted database privileges.

Enforce secure database-access patterns in code review and CI policies, test every externally influenced query parameter, minimize database permissions, and monitor application and database logs for injection indicators.

Find out what's already
exploitable in your codebase.