CVE-2026-32272
EPSS 0.04%Craft Commerce hasVariant/hasProduct Blind SQL Injection
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
Affected packages (1)
- Packagist/craftcms/commerce>= 5.0.0, < 5.6.0
CVSS scores
| Source | Version | Severity | Vector |
|---|---|---|---|
| osv | CVSS 4.0 | — | 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 |
References (6)
- ADVISORYhttps://github.com/advisories/GHSA-2453-mppf-46cj
- ADVISORYhttps://nvd.nist.gov/vuln/detail/CVE-2026-32272
- PATCHhttps://github.com/craftcms/commerce
- WEBhttps://github.com/craftcms/commerce/pull/4232
- WEBhttps://github.com/craftcms/commerce/releases/tag/5.6.0
- WEBhttps://github.com/craftcms/commerce/security/advisories/GHSA-r54v-qq87-px5r