GitHub Advisoryadvisory · Packagist

GHSA-r54v-qq87-px5r Craft Commerce hasVariant/hasProduct Blind SQL Injection

HIGH Published 2026-04-14 Modified 2026-04-14 Official page ↗
Aliases
CVE-2026-32272
Ecosystem
Packagist
Packages
craftcms/commerce
Severity
High
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weaknesses
CWE-89
Reviewed
2026-04-14

Affected packages

• Packagist craftcms/commerce: >= 5.0.0, < 5.6.0 → fixed in 5.6.0

Description

Overview Craft Commerce’s `ProductQuery::hasVariant` and `VariantQuery::hasProduct` properties bypass the `unset()` blocklist added to `ElementIndexesController` in GHSA-2453-mppf-46cj. The blocklist only strips top-level Yii2 Query properties (`where`, `orderBy`, etc.), but `hasVariant` and `hasProduct` pass through untouched. Internally, these properties call `Craft::configure()` on a subquery without sanitization, re-introducing SQL injection via `criteria[hasVariant][where]=INJECTED_SQL`. An authenticated control panel user can perform boolean-based blind SQL injection through the patched `ElementIndexesController` and extract arbitrary database contents. Impact • Full database read access via blind SQL injection • Privilege escalation via security key extraction → forged admin sessions Prerequisites • Authenticated control panel user • Commerce plugin installed • Products with variants in the database

Related

Alias · CVE (1)

  • CVE-2026-32272 Craft Commerce is an ecommerce platform for Craft CMS. vulnerability

Weakness · CWE (1)

  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command weakness

References