Skip to content
Heist/ feed
Back to feed
High

Vendure: Stored XSS in the Admin Dashboard via unsafe HTML-stripping (innerHTML) of entity descriptions

Type: advisorySources: OSV

Vendure is an open-source headless commerce platform. Prior to 3.6.5, RichTextDescriptionCell in packages/dashboard/src/lib/components/shared/table-cell/order-table-cell-components.tsx attempts to strip markup by assigning an administrator-controlled description to a live element's innerHTML and then reading textContent. Active resource markup can execute an event handler during the innerHTML assignment before textContent is read. A lower-privilege administrator can store such markup in descriptions rendered by the Products list, Collections list, Promotions list, Payment Methods list, or Shipping Methods list, and script executes when another administrator views the affected row. This stored cross-site scripting can compromise the viewing administrator's session and enable cross-privilege or cross-channel administrative actions. This issue is fixed in version 3.6.5.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-63459
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 18:46 UTC · Revision 1

Source evidence

Vendure: Stored XSS in the Admin Dashboard via unsafe HTML-stripping (innerHTML) of entity descriptions

core-osv · Original source

Published 17 Sept 2026, 14:45 UTC

Vendure is an open-source headless commerce platform. Prior to 3.6.5, RichTextDescriptionCell in packages/dashboard/src/lib/components/shared/table-cell/order-table-cell-components.tsx attempts to strip markup by assigning an administrator-controlled description to a live element's innerHTML and then reading textContent. Active resource markup can execute an event handler during the innerHTML assignment before textContent is read. A lower-privilege administrator can store such markup in descriptions rendered by the Products list, Collections list, Promotions list, Payment Methods list, or Shipping Methods list, and script executes when another administrator views the affected row. This stored cross-site scripting can compromise the viewing administrator's session and enable cross-privilege or cross-channel administrative actions. This issue is fixed in version 3.6.5.

osv:CVE-2026-63459
Complete source record
{
  "id": "3751cb1bc60e1482c06ba78cb030cb2247dd99553c8f240b94e8d407ae385650",
  "url": "https://osv.dev/vulnerability/CVE-2026-63459",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Vendure: Stored XSS in the Admin Dashboard via unsafe HTML-stripping (innerHTML) of entity descriptions",
    "summary": "Vendure is an open-source headless commerce platform. Prior to 3.6.5, RichTextDescriptionCell in packages/dashboard/src/lib/components/shared/table-cell/order-table-cell-components.tsx attempts to strip markup by assigning an administrator-controlled description to a live element's innerHTML and then reading textContent. Active resource markup can execute an event handler during the innerHTML assignment before textContent is read. A lower-privilege administrator can store such markup in descriptions rendered by the Products list, Collections list, Promotions list, Payment Methods list, or Shipping Methods list, and script executes when another administrator views the affected row. This stored cross-site scripting can compromise the viewing administrator's session and enable cross-privilege or cross-channel administrative actions. This issue is fixed in version 3.6.5.",
    "evidence": "osv:CVE-2026-63459",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-63459",
      "aliases": [
        "CVE-2026-63459",
        "GHSA-xhq9-whgq-49j5"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/vendurehq/vendure",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "ceb0705be869c1b84f6796c8e7bdc56faa33c064"
                },
                {
                  "fixed": "d7aa42a3f0cb524297a1a2fdf700e4aba9aca684"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.6.5"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "d7aa42a3f0cb524297a1a2fdf700e4aba9aca684"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "ceb0705be869c1b84f6796c8e7bdc56faa33c064"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v3.6.5"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.6.4",
            "v3.6.3",
            "v3.6.2",
            "v3.6.1",
            "v3.5.0",
            "v3.4.2",
            "v3.4.1",
            "v3.4.0",
            "v3.3.8",
            "v3.3.7",
            "v3.3.6",
            "v3.3.5",
            "v3.3.4",
            "v3.3.3",
            "v3.3.2",
            "v3.3.1",
            "v3.3.0",
            "v3.2.2",
            "v3.2.1",
            "v3.2.0",
            "v3.0.5",
            "v3.0.4",
            "v3.0.3",
            "v3.0.2",
            "v2.3.0",
            "v3.0.1",
            "v3.0.0",
            "v3.0.0-next.0",
            "v2.2.7",
            "v2.2.6",
            "v2.2.5",
            "v2.2.4",
            "v2.2.3",
            "v2.2.2",
            "v2.2.1",
            "v2.2.0",
            "v2.2.0-next.8",
            "v2.2.0-next.7",
            "v2.2.0-next.6",
            "v2.2.0-next.5",
            "v2.2.0-next.4",
            "v2.2.0-next.3",
            "v2.2.0-next.2",
            "v2.2.0-next.1",
            "v2.2.0-next.0",
            "v2.1.0",
            "v2.1.0-next.7",
            "v2.1.0-next.6",
            "v2.1.0-next.5",
            "v2.0.5",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v2.0.0",
            "v2.0.0-beta.3",
            "v2.0.0-beta.2",
            "v2.0.0-beta.1",
            "v2.0.0-beta.0",
            "v2.0.0-next.28",
            "v2.0.0-next.27",
            "v2.0.0-next.26",
            "v2.0.0-next.25",
            "v2.0.0-next.24",
            "v2.0.0-next.23",
            "v2.0.0-next.22",
            "v2.0.0-next.21",
            "v2.0.0-next.20",
            "v2.0.0-next.19",
            "v2.0.0-next.18",
            "v2.0.0-next.17",
            "v2.0.0-next.16",
            "v2.0.0-next.15",
            "v2.0.0-next.14",
            "v2.0.0-next.13",
            "v2.0.0-next.12",
            "v2.0.0-next.11",
            "v2.0.0-next.10",
            "v2.0.0-next.9",
            "v2.0.0-next.8",
            "v2.0.0-next.7",
            "v2.0.0-next.6",
            "v2.0.0-next.5",
            "v2.0.0-next.4",
            "v2.0.0-next.3",
            "v2.0.0-next.2",
            "v2.0.0-next.1",
            "v2.0.0-next.0",
            "v1.4.0",
            "v1.4.0-beta.0",
            "v1.3.2",
            "v1.3.1",
            "v1.3.0",
            "v1.2.3",
            "v1.2.2",
            "v1.2.1",
            "v1.2.0",
            "v1.1.0",
            "v1.0.0",
            "v1.0.0-rc.0",
            "v1.0.0-beta.11",
            "v1.0.0-beta.10",
            "v1.0.0-beta.8",
            "v1.0.0-beta.9",
            "v1.0.0-beta.7",
            "v1.0.0-beta.6",
            "v1.0.0-beta.5",
            "v1.0.0-beta.4",
            "v1.0.0-beta.3",
            "v1.0.0-beta.2",
            "v1.0.0-beta.1",
            "v0.16.1",
            "v0.16.0",
            "v0.15.2",
            "v0.15.1",
            "v0.15.0",
            "v0.13.0",
            "v0.12.4",
            "v0.12.3",
            "v0.12.2",
            "v0.12.1",
            "v0.11.1",
            "v0.11.0",
            "v0.10.1",
            "v0.10.0",
            "v0.9.0",
            "v0.8.2",
            "v0.8.1",
            "v0.8.0",
            "v0.7.0",
            "v0.6.5",
            "v0.6.4",
            "v0.6.2",
            "v0.6.1",
            "v0.6.0",
            "v0.5.1",
            "v0.5.0",
            "v0.4.0",
            "v0.3.4",
            "v0.3.3",
            "v0.3.1",
            "v0.3.0",
            "v0.2.1",
            "v0.2.0",
            "v0.1.2-beta.12",
            "v0.1.2-beta.11",
            "v0.1.2-beta.10",
            "v0.1.2-beta.8",
            "v0.1.2-beta.7",
            "v0.1.2-beta.6",
            "v0.1.2-beta.5",
            "v0.1.2-beta.4",
            "v0.1.2-beta.3",
            "v0.1.2-beta.2",
            "v0.1.2-beta.1",
            "v0.1.2-beta.0",
            "0.1.0-alpha.18",
            "0.1.0-alpha.16",
            "0.1.0-alpha.15",
            "0.1.0-alpha.14",
            "0.1.0-alpha.13",
            "0.1.0-alpha.12",
            "0.1.0-alpha.11",
            "0.1.0-alpha.10",
            "0.1.0-alpha.9",
            "0.1.0-alpha.8",
            "0.1.0-alpha.7",
            "0.1.0-alpha.6",
            "0.1.0-alpha.5",
            "0.1.0-alpha.4",
            "0.1.0-alpha.3"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63459.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:22.455921507Z",
      "provider": "osv",
      "references": [
        "https://github.com/vendurehq/vendure/releases/tag/v3.6.5",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63459.json",
        "https://github.com/vendurehq/vendure/security/advisories/GHSA-xhq9-whgq-49j5",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-63459",
        "https://github.com/vendurehq/vendure/commit/d7aa42a3f0cb524297a1a2fdf700e4aba9aca684"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63459.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-63459",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 488701,
  "published_at": "2026-09-17T14:45:39.65+00:00"
}