GitHub Advisoryadvisory · Packagist
GHSA-r54v-qq87-px5r Craft Commerce hasVariant/hasProduct Blind SQL Injection
HIGH
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
- https://github.com/craftcms/commerce/security/advisories/GHSA-r54v-qq87-px5r web
- https://nvd.nist.gov/vuln/detail/CVE-2026-32272 advisory
- https://github.com/craftcms/commerce/pull/4232 web
- https://github.com/advisories/GHSA-2453-mppf-46cj advisory
- https://github.com/craftcms/commerce package
- https://github.com/craftcms/commerce/releases/tag/5.6.0 web