CVE-2026-63461: Vendure Shop API List Queries Can Vulnerability

MODERATE
Advisory Identifier: GHSA-xf65-r35x-wmmv
CVSS 5.3
CWE-200
Published
Advisory Summary

CVE-2026-63461 is a MODERATE (CVSS 5.3) shop api list queries can vulnerability (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) affecting Vendure libraries in the npm ecosystem. The issue involves shop api list queries can return non-public entities when filteroperator is or. Remediation is available by upgrading affected packages to version 3.6.5.

CVE-2026-63461 at a Glance

CVE Identifier CVE-2026-63461
GHSA Identifier GHSA-xf65-r35x-wmmv
Severity MODERATE
CVSS v3.1 Base Score 5.3
CWE Classification CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
Affected Product Vendure
Package Ecosystem npm
Published Date
Last Updated

Security Impact

CVSS: 5.3

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality Low (C:L)
Integrity None (I:N)
Availability None (A:N)

How to Fix CVE-2026-63461

To remediate this vulnerability, upgrade all affected Vendure dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

@vendure/core fixed: 3.6.5
npm install @vendure/core@3.6.5
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

npm ls @vendure/core

How to Check if You Are Affected

To determine whether your Node.js application is affected by CVE-2026-63461, inspect your project dependencies using npm:

npm ls @vendure/core

Analyze the terminal output to locate any version of Vendure in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 3.6.5), your application is affected.

Note: The npm ls @vendure/core command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor, where the product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. In Vendure, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

The Shop API `products`, `collections` and `facets` queries inject a mandatory filter to restrict results to publicly-visible entities (`Product.enabled = true`, `Collection.isPrivate = false`, `Facet.isPrivate = false`). This injected guard was combined with the caller-supplied filter using the caller-controlled `filterOperator`. When a caller sets `filterOperator: OR`, the guard is OR-combined instead of AND-combined, so a caller can retrieve disabled products and private collections/facets by supplying a predicate that matches them. ### Impact Exposure of catalog entities intended to be hidden from the Shop API. The Shop API is publicly accessible, so no authentication is required. ### Patches The injected guard is now always AND-combined with the caller-supplied filter, regardless of `filterOperator`. ### Workarounds None other than upgrading.

CVE-2026-63461 Affected Vendure Versions

1 component(s)
Fixed Versions:
3.6.5
Product / Package Ecosystem Affected Versions Fixed Version
@vendure/core
npm
≥ 1.0.0
< 3.6.5
3.6.5

References

Frequently Asked Questions

What is CVE-2026-63461?
CVE-2026-63461 is a security vulnerability in Vendure involving Shop API list queries can return non-public entities when filterOperator is OR under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.
Which Vendure versions are affected?
Affected versions include releases prior to 3.6.5 across affected packages: @vendure/core.
What version fixes CVE-2026-63461?
Upgrading to 3.6.5 (or the latest patched release for your respective branch) resolves the vulnerability.
Is @vendure/core affected?
Yes, @vendure/core is affected in releases prior to 3.6.5. Upgrade your dependency to 3.6.5 or later.
What is the CVSS score of CVE-2026-63461?
CVE-2026-63461 has a CVSS v3.1 base score of 5.3 (MODERATE) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N.
What CWE is associated with CVE-2026-63461?
CVE-2026-63461 is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor (The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.).
How can I check npm dependencies for CVE-2026-63461?
Run the dependency tree command: 'npm ls @vendure/core'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-xf65-r35x-wmmv",
  "modified" : "2026-09-17T14:50:02Z",
  "published" : "2026-09-17T14:50:02Z",
  "aliases" : [ "CVE-2026-63461" ],
  "summary" : "Vendure: Shop API list queries can return non-public entities when filterOperator is OR",
  "details" : "The Shop API `products`, `collections` and `facets` queries inject a mandatory filter to restrict results to publicly-visible entities (`Product.enabled = true`, `Collection.isPrivate = false`, `Facet.isPrivate = false`). This injected guard was combined with the caller-supplied filter using the caller-controlled `filterOperator`. When a caller sets `filterOperator: OR`, the guard is OR-combined instead of AND-combined, so a caller can retrieve disabled products and private collections/facets by supplying a predicate that matches them.\n\n### Impact\nExposure of catalog entities intended to be hidden from the Shop API. The Shop API is publicly accessible, so no authentication is required.\n\n### Patches\nThe injected guard is now always AND-combined with the caller-supplied filter, regardless of `filterOperator`.\n\n### Workarounds\nNone other than upgrading.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@vendure/core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.0.0"
      }, {
        "fixed" : "3.6.5"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/vendurehq/vendure/security/advisories/GHSA-xf65-r35x-wmmv"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vendurehq/vendure/commit/6daf5cb8571321eb6c6afa1d8e95a390c060be02"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/vendurehq/vendure"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vendurehq/vendure/releases/tag/v3.6.5"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-200" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-09-17T14:50:02Z",
    "nvd_published_at" : null
  }
}