/

CVE-2026-107083

Severity:

CRITICAL RISK

(9.8)

SQL Injection (CWE-89) in SLiMS Reporting Details

CVE-2026-107083

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Unauthorized database access and data manipulation

Severity:

CRITICAL RISK

(9.8)

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 SLiMS Bulian reporting functionality allows attacker-controlled input in the fileID parameter to influence database queries. If the affected reporting endpoint is reachable and input is not safely handled, an attacker may read, alter, or interfere with application data.

A SQL injection vulnerability in the SLiMS Bulian reporting functionality allows attacker-controlled input in the fileID parameter to influence database queries. If the affected reporting endpoint is reachable and input is not safely handled, an attacker may read, alter, or interfere with application data.

Affected context

The issue occurs in the custom reporting detail handler at

admin/modules/reporting/customs/dl_detail.php when it processes the

fileID request parameter. Risk depends on whether the reporting endpoint

is exposed, how authentication and authorization are configured, and whether

the application constructs database queries from the parameter without

parameterization or equivalent safeguards.

The issue occurs in the custom reporting detail handler at

admin/modules/reporting/customs/dl_detail.php when it processes the

fileID request parameter. Risk depends on whether the reporting endpoint

is exposed, how authentication and authorization are configured, and whether

the application constructs database queries from the parameter without

parameterization or equivalent safeguards.

Exploit preconditions

  • Attack surface: Web-accessible SLiMS reporting functionality
  • Required access: Access sufficient to reach the affected reporting endpoint; this may require authentication depending on deployment configuration
  • Trigger point: Processing of the fileID parameter by dl_detail.php
  • Why exploitation is possible: The parameter may influence a database query without adequate separation between data and SQL instructions
  • Attack surface: Web-accessible SLiMS reporting functionality
  • Required access: Access sufficient to reach the affected reporting endpoint; this may require authentication depending on deployment configuration
  • Trigger point: Processing of the fileID parameter by dl_detail.php
  • Why exploitation is possible: The parameter may influence a database query without adequate separation between data and SQL instructions

Why this happens

The underlying bug is the use of untrusted request data in a database query

without a reliable parameterization boundary. When application input is

treated as part of SQL syntax rather than as a bound value, crafted input can

change query behavior. This maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection).

The underlying bug is the use of untrusted request data in a database query

without a reliable parameterization boundary. When application input is

treated as part of SQL syntax rather than as a bound value, crafted input can

change query behavior. This maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection).

Potential impact

  • An attacker may retrieve unauthorized database records
  • An attacker could modify or delete application data, depending on database permissions
  • The vulnerability can expose member, catalog, administrative, or operational information
  • Application availability may be affected through disruptive database queries
  • Compromised database credentials or excessive privileges could increase downstream impact
  • An attacker may retrieve unauthorized database records
  • An attacker could modify or delete application data, depending on database permissions
  • The vulnerability can expose member, catalog, administrative, or operational information
  • Application availability may be affected through disruptive database queries
  • Compromised database credentials or excessive privileges could increase downstream impact

General mitigation guidance

Mitigation generally centers on ensuring that request values never become

executable SQL syntax.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist validation and strict type handling for identifiers such as fileID
  • Avoid string concatenation or interpolation when constructing SQL statements
  • Return generic database errors without exposing query details
  • Assign the application database account only the permissions required for its functions
  • Enforce authentication and authorization consistently around reporting endpoints
  • Treat client-controlled identifiers as untrusted even when they appear numeric

Mitigation generally centers on ensuring that request values never become

executable SQL syntax.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all database operations
  • Apply allowlist validation and strict type handling for identifiers such as fileID
  • Avoid string concatenation or interpolation when constructing SQL statements
  • Return generic database errors without exposing query details
  • Assign the application database account only the permissions required for its functions
  • Enforce authentication and authorization consistently around reporting endpoints
  • Treat client-controlled identifiers as untrusted even when they appear numeric

How teams detect issues like this

Organizations can look for SQL injection risks through:

  • Static analysis rules that flag SQL construction using request parameters
  • Code review checks for string concatenation or interpolation in database queries
  • Dynamic testing of reporting endpoints with unexpected type and boundary inputs
  • Web application firewall or API policy rules for suspicious database-expression patterns
  • Database audit logs showing anomalous queries, unusual record access, or unexpected errors
  • Automated security review tools that identify missing parameter binding and weak input validation

Organizations can look for SQL injection risks through:

  • Static analysis rules that flag SQL construction using request parameters
  • Code review checks for string concatenation or interpolation in database queries
  • Dynamic testing of reporting endpoints with unexpected type and boundary inputs
  • Web application firewall or API policy rules for suspicious database-expression patterns
  • Database audit logs showing anomalous queries, unusual record access, or unexpected errors
  • Automated security review tools that identify missing parameter binding and weak input validation

Sources

SourceLink
github.comgithub.com/Primandito/CVE-2026-107083
github.comgithub.com/slims/slims9_bulian/issues/393

Frequently asked

questions

It may be remotely exploitable when the affected reporting endpoint is

reachable over the application network and the attacker can supply the

fileID parameter. Authentication and network exposure can limit the scope.

The attacker needs access sufficient to invoke the affected reporting

function. Whether that requires a logged-in account depends on the

deployment's authentication and authorization configuration.

Use parameterized database queries, validate fileID against the expected

type and format, and ensure the database account has only necessary

privileges.

Combine secure database APIs, centralized input validation, endpoint

authorization, code review rules, automated testing, and monitoring of

unusual database activity.

It may be remotely exploitable when the affected reporting endpoint is

reachable over the application network and the attacker can supply the

fileID parameter. Authentication and network exposure can limit the scope.

The attacker needs access sufficient to invoke the affected reporting

function. Whether that requires a logged-in account depends on the

deployment's authentication and authorization configuration.

Use parameterized database queries, validate fileID against the expected

type and format, and ensure the database account has only necessary

privileges.

Combine secure database APIs, centralized input validation, endpoint

authorization, code review rules, automated testing, and monitoring of

unusual database activity.

Find out what's already
exploitable in your codebase.