/

CVE-2026-119655

Severity:

HIGH RISK

(7.5)

SQL Injection (CWE-89) in CoreShop Goods Page API Endpoint

CVE-2026-119655

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Unauthorized Database Access and Sensitive Data Disclosure

Severity:

HIGH RISK

(7.5)

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

CoreShop through version 1.5.5 contains an unauthenticated SQL injection vulnerability in the api/Good/GetGoodsPageList endpoint. An attacker may manipulate the unvalidated order parameter to influence database queries and use blind techniques to retrieve sensitive member and order information.

CoreShop through version 1.5.5 contains an unauthenticated SQL injection vulnerability in the api/Good/GetGoodsPageList endpoint. An attacker may manipulate the unvalidated order parameter to influence database queries and use blind techniques to retrieve sensitive member and order information.

Affected context

The issue occurs in CoreShop deployments where the goods page-list API accepts an order parameter and appends it to an ORDER BY clause without sufficiently restricting the allowed fields or expressions. Risk is increased when the endpoint is publicly reachable and the backing database contains member accounts, orders, or other sensitive application data.

The issue occurs in CoreShop deployments where the goods page-list API accepts an order parameter and appends it to an ORDER BY clause without sufficiently restricting the allowed fields or expressions. Risk is increased when the endpoint is publicly reachable and the backing database contains member accounts, orders, or other sensitive application data.

Exploit preconditions

  • Attack surface: The publicly exposed api/Good/GetGoodsPageList API endpoint
  • Required access: No authentication may be required when the endpoint is accessible anonymously
  • Trigger point: Processing of the client-controlled order parameter
  • Why exploitation is possible: The parameter is incorporated into database query ordering without effective allowlisting or neutralization, potentially allowing query logic to be influenced and inferred through response or timing behavior
  • Attack surface: The publicly exposed api/Good/GetGoodsPageList API endpoint
  • Required access: No authentication may be required when the endpoint is accessible anonymously
  • Trigger point: Processing of the client-controlled order parameter
  • Why exploitation is possible: The parameter is incorporated into database query ordering without effective allowlisting or neutralization, potentially allowing query logic to be influenced and inferred through response or timing behavior

Why this happens

The underlying defect is the use of unvalidated request data in SQL query construction. Treating the order parameter as a trusted SQL fragment allows input to affect an ORDER BY clause, which maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command, commonly known as SQL injection. Application-level field checks are insufficient when they do not constrain the complete expression to a fixed, approved set of identifiers and directions.

The underlying defect is the use of unvalidated request data in SQL query construction. Treating the order parameter as a trusted SQL fragment allows input to affect an ORDER BY clause, which maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command, commonly known as SQL injection. Application-level field checks are insufficient when they do not constrain the complete expression to a fixed, approved set of identifiers and directions.

Potential impact

  • An attacker may retrieve sensitive member account information
  • An attacker could disclose order and transaction-related records
  • Database contents may be inferred through boolean-based or timing-based behavior
  • Application availability could be affected by expensive or abusive queries
  • Broader database compromise may occur if excessive database privileges are available
  • An attacker may retrieve sensitive member account information
  • An attacker could disclose order and transaction-related records
  • Database contents may be inferred through boolean-based or timing-based behavior
  • Application availability could be affected by expensive or abusive queries
  • Broader database compromise may occur if excessive database privileges are available

General mitigation guidance

Mitigation generally focuses on reducing trust in query-shaping input and preventing request data from becoming executable SQL syntax.

Common defensive patterns include:

  • Mapping client-provided sort fields and directions to a fixed server-side allowlist
  • Rejecting unknown, compound, or expression-based ordering values
  • Using framework query APIs that separate data values from SQL structure where supported
  • Applying strict input validation before query construction
  • Exposing only the minimum database privileges required by the application
  • Limiting anonymous access to data endpoints where business requirements permit
  • Avoiding detailed database errors and timing differences in API responses

Mitigation generally focuses on reducing trust in query-shaping input and preventing request data from becoming executable SQL syntax.

Common defensive patterns include:

  • Mapping client-provided sort fields and directions to a fixed server-side allowlist
  • Rejecting unknown, compound, or expression-based ordering values
  • Using framework query APIs that separate data values from SQL structure where supported
  • Applying strict input validation before query construction
  • Exposing only the minimum database privileges required by the application
  • Limiting anonymous access to data endpoints where business requirements permit
  • Avoiding detailed database errors and timing differences in API responses

How teams detect issues like this

Detection can include static analysis for request parameters concatenated into SQL or query-builder fragments, especially around ORDER BY, filtering, and pagination logic. Code review should examine whether sort fields and directions are selected from server-side allowlists rather than passed through from clients. Runtime monitoring can look for unusual ordering values, repeated response-timing probes, database error patterns, and abnormal data-enumeration behavior. CI policy checks and automated application security testing may help identify unsafe query construction before deployment.

Detection can include static analysis for request parameters concatenated into SQL or query-builder fragments, especially around ORDER BY, filtering, and pagination logic. Code review should examine whether sort fields and directions are selected from server-side allowlists rather than passed through from clients. Runtime monitoring can look for unusual ordering values, repeated response-timing probes, database error patterns, and abnormal data-enumeration behavior. CI policy checks and automated application security testing may help identify unsafe query construction before deployment.

Sources

SourceLink
github.comgithub.com/CoreUnion/CoreShop
github.comgithub.com/CoreUnion/CoreShop/blob/v1.5.5/CoreCms.Net.Repository/BaseRepository.cs#L155-L165
github.comgithub.com/CoreUnion/CoreShop/blob/v1.5.5/CoreCms.Net.Web.WebApi/Controllers/GoodController.cs#L233-L241
github.comgithub.com/CoreUnion/CoreShop/commit/0453011fe2a5abc4c202894ed1d9e87b2accc9e4
github.comgithub.com/CoreUnion/CoreShop/issues/20
hackmd.iohackmd.io/@hieuPenguinnn/coreshop-goods-orderby-sql-injection
vulncheck.comvulncheck.com/advisories/coreshop-through-1.5.5-sql-injection-via-order-parameter-in-getgoodspagelist

Frequently asked

questions

It may be remotely exploitable when the goods page-list endpoint is reachable over the network without authentication and accepts attacker-controlled ordering input.

Based on the described behavior, an account may not be required. The decisive condition is whether anonymous clients can reach the vulnerable endpoint.

Treat sort fields and directions as structured values selected from a strict server-side allowlist, and ensure untrusted input cannot become part of SQL syntax.

Combine parameterized query practices with input validation, least-privilege database accounts, security-focused code review, and testing of all query-shaping API parameters.

It may be remotely exploitable when the goods page-list endpoint is reachable over the network without authentication and accepts attacker-controlled ordering input.

Based on the described behavior, an account may not be required. The decisive condition is whether anonymous clients can reach the vulnerable endpoint.

Treat sort fields and directions as structured values selected from a strict server-side allowlist, and ensure untrusted input cannot become part of SQL syntax.

Combine parameterized query practices with input validation, least-privilege database accounts, security-focused code review, and testing of all query-shaping API parameters.

Find out what's already
exploitable in your codebase.