Vendure: Shop API list queries can return non-public entities when filterOperator is OR
Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop API products, collections, and facets queries combine mandatory visibility guards with caller-supplied filters using the caller-controlled filterOperator. When filterOperator is OR, a predicate matching a hidden entity can bypass the Product.enabled, Collection.isPrivate, or Facet.isPrivate guard. An unauthenticated caller can therefore retrieve disabled products and private collections or facets. This issue is fixed in version 3.6.5.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-63461
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 09:43 UTC · Revision 1
Source evidence
Vendure: Shop API list queries can return non-public entities when filterOperator is OR
core-osv · Original sourcePublished 17 Sept 2026, 14:43 UTC
Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop API products, collections, and facets queries combine mandatory visibility guards with caller-supplied filters using the caller-controlled filterOperator. When filterOperator is OR, a predicate matching a hidden entity can bypass the Product.enabled, Collection.isPrivate, or Facet.isPrivate guard. An unauthenticated caller can therefore retrieve disabled products and private collections or facets. This issue is fixed in version 3.6.5.
osv:CVE-2026-63461
Complete source record
{
"id": "fda48bcea22c028c46c9f246f29cbcbe92911e53df4131e34f130825d6db9153",
"url": "https://osv.dev/vulnerability/CVE-2026-63461",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Vendure: Shop API list queries can return non-public entities when filterOperator is OR",
"summary": "Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop API products, collections, and facets queries combine mandatory visibility guards with caller-supplied filters using the caller-controlled filterOperator. When filterOperator is OR, a predicate matching a hidden entity can bypass the Product.enabled, Collection.isPrivate, or Facet.isPrivate guard. An unauthenticated caller can therefore retrieve disabled products and private collections or facets. This issue is fixed in version 3.6.5.",
"evidence": "osv:CVE-2026-63461",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-63461",
"aliases": [
"CVE-2026-63461",
"GHSA-xf65-r35x-wmmv"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/vendurehq/vendure",
"type": "GIT",
"events": [
{
"introduced": "033fb5785e8d23dab5c0002f4e6e95d502da3caf"
},
{
"fixed": "ceb0705be869c1b84f6796c8e7bdc56faa33c064"
},
{
"fixed": "6daf5cb8571321eb6c6afa1d8e95a390c060be02"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "1.0.0"
},
{
"fixed": "3.6.5"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "6daf5cb8571321eb6c6afa1d8e95a390c060be02"
}
],
"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"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63461.json"
}
}
],
"modified": "2026-10-28T02:30:50.432691817Z",
"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-63461.json",
"https://github.com/vendurehq/vendure/security/advisories/GHSA-xf65-r35x-wmmv",
"https://nvd.nist.gov/vuln/detail/CVE-2026-63461",
"https://github.com/vendurehq/vendure/commit/6daf5cb8571321eb6c6afa1d8e95a390c060be02"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63461.json"
}
},
"related_cves": [
{
"value": "CVE-2026-63461",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 518911,
"published_at": "2026-09-17T14:43:01.879+00:00"
}