Description
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.
Published: 2026-10-12
Score: 8.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized Data Access and Modification
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises from a logical flaw in the @authorization filters of @neo4j/graphql where the "none" quantifier is mistakenly interpreted as "some" when translating to Cypher. Consequently, a rule that intends to deny access to all matching related records actually permits those same records, allowing an authenticated user to read or modify data they should not access. This flaw can expose sensitive information through queries and enable unauthorized creation or deletion of records via mutations. The weakness is a Predicate Logic Error (CWE-863).

Affected Systems

The affected product is Neo4j's @neo4j/graphql JavaScript library, specifically versions 7.0.0 through 7.6.3 inclusive. The impact applies only when the library is used to apply @authorization filters on relationships or connections in GraphQL schemas.

Risk and Exploitability

The CVSS score of 8.6 indicates high severity. No EPSS data is available, and the vulnerability is not listed in the CISA KEV catalog, suggesting it is not currently known to be actively exploited. The likely attack vector is through normal GraphQL operations—queries or mutations—executed by an authenticated user. If an attacker can construct or modify authorization rules that include the "none" quantifier, they can bypass intended access controls to read or alter protected data. The logical inversion effectively creates a local privilege escalation scenario within the GraphQL API. The risk is that any application that relies on @neo4j/graphql for access control is susceptible to this flaw until the library is updated or the misuse of the quantifier is corrected.

Generated by OpenCVE AI on October 12, 2026 at 17:07 UTC.

Remediation

Vendor Solution

Upgrade @neo4j/graphql to version 7.6.4 or later.


Vendor Workaround

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.


OpenCVE Recommended Actions

  • Upgrade @neo4j/graphql to version 7.6.4 or later
  • Replace any use of the "none" quantifier in @authorization filters with an explicit disjunction or remove the filter until the library is updated
  • Run comprehensive tests that cover both denied and allowed users to confirm that authorization rules behave as intended

Generated by OpenCVE AI on October 12, 2026 at 17:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 16 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 13 Oct 2026 07:45:00 +0000

Type Values Removed Values Added
First Time appeared Neo4j
Neo4j graphql
Vendors & Products Neo4j
Neo4j graphql

Mon, 12 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description 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.
Title @neo4j/graphql: authorization relationship and connection filters invert the "none" quantifier
Weaknesses CWE-863
References
Metrics cvssV4_0

{'score': 8.6, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: Neo4j

Published:

Updated: 2026-10-16T17:27:47.458Z

Reserved: 2026-09-16T16:17:17.929Z

Link: CVE-2026-92682

cve-icon Vulnrichment

Updated: 2026-10-16T17:27:03.095Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-12T16:17:07.480

Modified: 2026-10-16T19:55:59.740

Link: CVE-2026-92682

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-13T07:26:53Z

Weaknesses