Loading...
Skip to main content

CVE-2026-25482 — Craft Commerce has Stored DOM XSS in...

MEDIUM

Craft Commerce has Stored DOM XSS in Order Status Name (Reflects in "Recent Orders" Dashboard Widget)

Published February 2, 2026Updated February 3, 2026Source: osv

Summary

## Summary A stored DOM XSS vulnerability exists in the **"Recent Orders"** dashboard widget. The Order Status Name is rendered via JavaScript string concatenation without proper escaping, allowing script execution when any admin visits the dashboard. Users are recommended to update to the patched 5.5.2 release to mitigate the issue. --- ## Proof of Concept ### Required Permissions - Admin access (to edit/create Order Statuses) ### Steps to Reproduce 1. Log in with an admin account 2. Navigate to **Commerce** → **Settings** → **Order Statuses** 3. Create new order status (e.g., "Pending") 4. Set the **Name** field to: ```html <img src=x onerror="alert('Order Statuses XSS')" hidden> ``` 5. Save the order status 6. Go to Commerce Orders & make some orders with different statuses (e.g. "New" & "the malicious created status") 7. Go to the Dashboard (`/admin/dashboard`) & Add **"Recent Orders"** widget and pick the same 2 statuses for orders 8. Notice the XSS execution <img width="1491" height="568" alt="xss-execution-in-dashboard" src="https://github.com/user-attachments/assets/84e8b121-30b9-4029-93be-e90009b6897e" /> --- ## Technical Details **File:** `vendor/craftcms/commerce/src/templates/_components/widgets/orders/recent/body.twig` **Root Cause:** `value.name` (the Order Status Name) is concatenated directly into the HTML string without sanitization. When JavaScript inserts this HTML into the DOM, any malicious tags/scripts in the name are executed.<img width="1780" height="858" alt="vulnerable-code" src="https://github.com/user-attachments/assets/b150ee9d-c072-4987-b506-81a29c23d84b" /> --- ## Mitigation Use `Craft.escapeHtml()` in the callback: ```javascript callback: function(value) { return '<span class="commerceStatusLabel"><span class="status ' + Craft.escapeHtml(value.color) + '"></span>' + Craft.escapeHtml(value.name) + '</span>'; } ``` ## Resources: https://github.com/craftcms/commerce/commit/d94d1c9832a47a1c383e375ae87c46c13935ba65

Advisory Timeline

  • First published February 2, 2026 (251 days ago).
  • Last revised February 3, 2026 — 1 day after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Composer
Update craftcms/commerce to 4.10.1 or later
composer require "craftcms/commerce:^4.10.1"
Composer
Update craftcms/commerce to 5.5.2 or later
composer require "craftcms/commerce:^5.5.2"

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (2)

Affects 1 ecosystem: packagist (1).

PackageEcosystemAffectedFixed In
craftcms/commerce
packagist
4.0.0, 4.0.0-RC1, 4.0.1, 4.0.2 (+65 more)4.10.1
craftcms/commerce
packagist
5.0.0, 5.0.1, 5.0.10, 5.0.10.1 (+82 more)5.5.2

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-79
    Cross-site Scripting (XSS)MITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.1 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
P
Scope
—
Confidentiality
—
Integrity
—
Availability
—

CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N

Frequently Asked Questions

What is CVE-2026-25482?
Craft Commerce has Stored DOM XSS in Order Status Name (Reflects in "Recent Orders" Dashboard Widget) This vulnerability has been assigned a severity rating of MEDIUM (CVSS score: 8.1/10).
How do I check if my project is affected by CVE-2026-25482?
CVE-2026-25482 affects craftcms/commerce. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-25482 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.1

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-frj9-9rwc-pw9j

Related CVEs

  • CVE-2026-32271
    HIGH

    Craft Commerce has a SQL Injection can lead to Remote Code Execution via TotalRevenue Widget

  • CVE-2026-29172
    HIGH

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

  • CVE-2026-29174
    HIGH

    Craft Commerce is vulnerable to SQL Injection in Commerce Inventory Table Sorting

  • CVE-2026-32272
    HIGH

    Craft Commerce hasVariant/hasProduct Blind SQL Injection

  • CVE-2026-75592
    MEDIUM

    Kirby: Access to image files outside of the site root via path traversal in the media handling

  • CVE-2026-88023
    MEDIUM

    MongoDB: GridFS data disclosure and deletion via query-operator injection in file IDs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies