/

CVE-2026-71292

Severity:

HIGH RISK

(7.2)

SQL Injection (CWE-89) in Subrion CMS Admin Grid Sorting

CVE-2026-71292

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Database Disclosure and Query Manipulation

Severity:

HIGH RISK

(7.2)

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

Subrion CMS contains a SQL injection vulnerability in its administrative grid sorting helper when an unrecognized sort parameter is used. An authenticated administrator may be able to manipulate the generated ORDER BY clause to read database contents, including administrator password hashes, when the affected grid lacks a complete sorting whitelist.

Affected context

The vulnerability occurs in Subrion CMS administrative grid controllers that process user-supplied sorting parameters. Risk is elevated when a controller does not define a complete $_gridSorting whitelist for its sortable columns, allowing the raw sort parameter to reach SQL construction. The affected functionality requires access to an administrative grid endpoint and an authenticated session with sufficient permissions to use it.

Exploit preconditions

  • Attack surface: Administrative grid endpoints that accept sorting parameters
  • Required access: An authenticated administrative session with access to an affected grid
  • Trigger point: Processing of the sort request parameter by _gridGetSorting()
  • Why exploitation is possible: An unrecognized sort value can bypass the per-controller whitelist and be inserted into an ORDER BY clause without adequate identifier escaping

Why this happens

The underlying bug is incomplete allowlisting combined with unsafe SQL construction. Although the sort direction is constrained to expected values, the column name falls back to attacker-controlled input when it is absent from the controller's sorting map. Backtick-quoting does not safely neutralize embedded identifier delimiters, allowing the value to alter the SQL expression. This behavior maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command, commonly known as SQL injection.

Potential impact

  • An attacker may extract database records through error-based or time-based query behavior
  • Administrator password hashes and other sensitive account data could be disclosed
  • Database queries may be manipulated within the affected statement context
  • Confidential application, transaction, language, or member data could be exposed
  • Data integrity or service availability may be affected depending on database privileges and query context

General mitigation guidance

Mitigation generally focuses on making sortable fields trusted data rather than directly incorporating request values into SQL.

Common defensive patterns include:

  • Apply complete, explicit allowlists for sortable fields in every administrative grid controller
  • Reject unknown sort keys instead of falling back to raw request input
  • Construct ORDER BY clauses only from server-defined column mappings
  • Use parameterized queries for values and database-supported identifier APIs where available
  • Enforce least-privilege permissions for the application database account
  • Limit administrative access and protect sessions with strong authentication and authorization controls
  • Avoid exposing detailed database errors to administrative clients

How teams detect issues like this

Organizations can look for this issue through:

  • Static analysis rules identifying request parameters concatenated or formatted into SQL statements
  • Code review checks for ORDER BY construction using raw sort or column parameters
  • Audits of every controller's sorting map for missing or incomplete allowlists
  • Dynamic testing that submits unexpected identifier characters to administrative grid sorting endpoints
  • Database and application monitoring for anomalous errors, delayed queries, or unusual administrative read activity
  • Policy enforcement requiring parameterized queries or server-side identifier mappings for database access

Sources

SourceLink
github.comgithub.com/intelliants/subrion
github.comgithub.com/intelliants/subrion/blob/master/includes/classes/ia.base.controller.admin.php

Frequently asked

questions

It may be exploitable through an administrative web interface, but the attacker generally needs network access to the CMS and a valid session with access to an affected grid.

An authenticated administrative account with permission to access a vulnerable grid is typically required. The exact scope depends on the deployment's role and authorization model.

Map each accepted sort key to a server-defined database identifier, reject unknown keys, and ensure that no raw request value is used to construct an ORDER BY clause.

Maintain complete allowlists for dynamic SQL identifiers, review every controller-specific sorting configuration, use least-privilege database accounts, and test administrative endpoints for injection through automated and manual security checks.

Find out what's already
exploitable in your codebase.