CVE-2026-29172: Craft Commerce has a SQL Injection in Commerce Purchasables Table Sorting

Published Mar 10, 2026
·
Updated

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 5. 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).

Other sources

Craft Commerce is an ecommerce platform for Craft CMS. Prior to 4.10.2 and 5.5.3, 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. This vulnerability is fixed in 4.10.2 and 5.5.3.

MITRE

Affected Software

4 affected componentsFixes available
composer/craftcms/commerce>=5.0.0<=5.5.2
5.5.3
composer/craftcms/commerce>=4.0.0<=4.10.1
4.10.2
CraftCMS Craft Commerce Craft Cms>=4.0.0<4.10.2
CraftCMS Craft Commerce Craft Cms>=5.0.0<5.5.3

Event History

Mar 10, 2026
Advisory Published
via GitHub·06:23 PM
Data Sourced
via GitHub·06:23 PM
DescriptionWeaknessAffected Software
CVE Published
via MITRE·07:52 PM
Data Sourced
via MITRE·07:52 PM
DescriptionWeakness
Data Sourced
via NVD·08:16 PM
RemedyDescriptionSeverityWeaknessAffected Software
May 22, 58164
Event
via FIRST·10:48 AM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-29172?

CVE-2026-29172 has a high severity due to the potential for SQL Injection, which can lead to unauthorized access to sensitive data.

2

How do I fix CVE-2026-29172?

To fix CVE-2026-29172, upgrade Craft Commerce to version 5.5.3 or 4.10.2 or later depending on your currently used version.

3

What software versions are affected by CVE-2026-29172?

CVE-2026-29172 affects Craft Commerce versions between 4.0.0 and 4.10.1, and between 5.0.0 and 5.5.2.

4

What type of vulnerability is CVE-2026-29172?

CVE-2026-29172 is a SQL Injection vulnerability in the purchasables table endpoint of Craft Commerce.

5

Who is impacted by CVE-2026-29172?

Any user or organization utilizing affected versions of Craft Commerce for managing purchasables is at risk due to CVE-2026-29172.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203
CVE-2026-29172 - Craft Commerce has a SQL Injection in Commerce Purchasables Table Sorting - SecAlerts