{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-92682",
"assignerOrgId": "3b236295-4ccd-4a1f-a1c1-a72eecc8d7b6",
"state": "PUBLISHED",
"assignerShortName": "Neo4j",
"dateReserved": "2026-09-16T16:17:17.929Z",
"datePublished": "2026-10-12T15:07:44.638Z",
"dateUpdated": "2026-10-12T15:07:44.638Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "3b236295-4ccd-4a1f-a1c1-a72eecc8d7b6",
"shortName": "Neo4j",
"dateUpdated": "2026-10-12T15:07:44.638Z"
},
"title": "@neo4j/graphql: authorization relationship and connection filters invert the \"none\" quantifier",
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"cweId": "CWE-863",
"description": "CWE-863 Incorrect Authorization",
"type": "CWE"
}
]
}
],
"affected": [
{
"vendor": "Neo4j",
"product": "@neo4j/graphql",
"collectionURL": "https://registry.npmjs.org",
"packageName": "@neo4j/graphql",
"repo": "https://github.com/neo4j/graphql",
"versions": [
{
"status": "affected",
"version": "7.0.0",
"lessThan": "7.6.4",
"versionType": "semver"
}
],
"defaultStatus": "unaffected"
}
],
"descriptions": [
{
"lang": "en",
"value": "In @neo4j/graphql versions from 7.0.0 up to but not including 7.6.4, the none quantifier in @authorization filters on relationships and connections is not negated when translated to Cypher, so it behaves like some. A rule such as \"none of the related denied users matches the JWT subject\" therefore returns exactly the records it was meant to exclude, and excludes those it was meant to return. An authenticated user whom such a rule is meant to deny can read the protected records. This is also the case for mutations, so the impact is that sensitive data could also be created and deleted by users that shouldn't have access according to the typedefs. Fixed in 7.6.4.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "In @neo4j/graphql versions from 7.0.0 up to but not including 7.6.4, the none quantifier in @authorization filters on relationships and connections is not negated when translated to Cypher, so it behaves like some. A rule such as \"none of the related denied users matches the JWT subject\" therefore returns exactly the records it was meant to exclude, and excludes those it was meant to return. An authenticated user whom such a rule is meant to deny can read the protected records. This is also the case for mutations, so the impact is that sensitive data could also be created and deleted by users that shouldn't have access according to the typedefs. Fixed in 7.6.4."
}
]
}
],
"references": [
{
"url": "https://github.com/neo4j/graphql/security/advisories/GHSA-h873-p2wr-fjx6",
"name": "GHSA-h873-p2wr-fjx6",
"tags": [
"vendor-advisory"
]
},
{
"url": "https://github.com/neo4j/graphql/commit/17650cc370445a6bb9d394d34063d3623e987aa2",
"name": "Fix commit 17650cc",
"tags": [
"patch"
]
},
{
"url": "https://github.com/neo4j/graphql/releases/tag/%40neo4j%2Fgraphql%407.6.4",
"name": "@neo4j/graphql 7.6.4 release notes",
"tags": [
"release-notes"
]
},
{
"url": "https://www.npmjs.com/package/@neo4j/graphql",
"tags": [
"product"
]
}
],
"metrics": [
{
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
],
"cvssV4_0": {
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "HIGH",
"subConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"subIntegrityImpact": "NONE",
"vulnAvailabilityImpact": "NONE",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"valueDensity": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"version": "4.0",
"baseSeverity": "HIGH",
"baseScore": 8.6,
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
}
}
],
"workarounds": [
{
"lang": "en",
"value": "Avoid the none quantifier in @authorization relationship and connection filters until you can upgrade, and verify any replacement rule with tests that cover both denied and allowed users.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "
Avoid the none quantifier in @authorization relationship and connection filters until you can upgrade, and verify any replacement rule with tests that cover both denied and allowed users.
" } ] } ], "solutions": [ { "lang": "en", "value": "Upgrade @neo4j/graphql to version 7.6.4 or later.", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "Upgrade @neo4j/graphql to version 7.6.4 or later.
" } ] } ], "credits": [ { "lang": "en", "value": "Neo4j Application Security team", "type": "finder" } ], "source": { "discovery": "INTERNAL" }, "x_generator": { "engine": "Vulnogram 1.0.5" } } } }