Skip to main content

Neo4j GraphQL CVE-2026-92681

| EUVDEUVD-2026-97487 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-10-12 Neo4j
9.3
CVSS 4.0 · Vendor: Neo4j
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify GraphQL endpoint with top-level @cypher field
  2. Delivery
    Send unauthenticated GraphQL query/mutation
  3. Exploit
    Schema/type-level @authentication silently bypassed
  4. Execution
    Server executes configured Cypher as service account
  5. Impact
    Read or modify backend graph data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitable only when ALL of the following hold: the application uses @neo4j/graphql ≤7.6.3; it defines a top-level field (on the Query or Mutation type) annotated with @cypher; and it relies on a schema-level or Query/Mutation type-level @authentication directive to protect that field. The decisive limiting factor is that @authentication placed DIRECTLY on the individual @cypher field IS enforced correctly - so applications that annotate fields individually are not affected. Impact is further bounded by whatever Cypher statements are configured and by the privileges of the GraphQL service account. No user interaction or authentication is required to trigger the flaw against a qualifying configuration (PR:N/UI:N).

Impact

This is a genuine high-priority issue, not a CVSS-inflated one. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H) is internally consistent with the description: an unauthenticated network attacker can invoke a top-level @cypher field and execute arbitrary configured Cypher with the service account's privileges, yielding high confidentiality and integrity impact (VA:N - no direct availability impact claimed). The root cause (CWE-306, Missing Authentication) is confirmed by the vendor advisory GHSA-8xj4-8gg9-fx9h and the patch commit, which adds schema- and type-level @authentication enforcement to top-level @cypher resolution. No EPSS score, KEV listing, or POC is present in the supplied data, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the risk is driven by severity and ease of exploitation rather than observed in-the-wild activity. One important caveat: real-world exploitability is conditional (see exploitation_conditions) - only applications that protect a top-level @cypher field via schema-level or type-level @authentication (rather than field-level) are vulnerable, so the theoretical 9.3 does not apply to every deployment of the library.

Exploit ScenarioDerived

An application exposes a top-level @cypher Query or Mutation field and relies on a schema-level or type-level @authentication directive to restrict it to logged-in users. Because that directive is silently ignored for @cypher fields in versions ≤7.6.3, an unauthenticated attacker simply sends the GraphQL query/mutation with no token and the service executes the configured Cypher under its own account, reading or modifying graph data. No public exploit code is identified in the supplied data, but the attack requires only a crafted GraphQL request (AV:N/AC:L/PR:N/UI:N).

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

Schema-level and Query/Mutation type-level @authentication directives are silently ignored for top-level @cypher fields in @neo4j/graphql versions up to and including 7.6.3, letting unauthenticated remote callers invoke those fields and run the embedded Cypher statements with the GraphQL service account's privileges, which may permit reading and modifying data. Only @authentication placed directly on the individual @cypher field is enforced, so applications relying on schema- or type-level protection are exposed while those annotating each field individually are not. No public exploit code has been identified at time of analysis, and the vendor has released 7.6.4 as the fix.

RemediationAI

Upgrade @neo4j/graphql to 7.6.4, the vendor-released patched version (release tag https://github.com/neo4j/graphql/releases/tag/%40neo4j%2Fgraphql%407.6.4), or apply the upstream fix commit ef69cc69ff5e97c60d64aa524005f939c5ba3633. If upgrading cannot be done immediately, add an explicit @authentication directive directly to every top-level @cypher field, because field-level enforcement is the one path that works correctly in the affected versions; this is reliable but requires auditing and maintaining the directive on each field, and any field that is missed remains exposed. As an additional compensating control, restrict the privileges of the Neo4j GraphQL service account to only the data it legitimately needs, which bounds what a bypassed Cypher statement can read or mutate but risks breaking legitimate queries that depend on broader access. Removing or disabling unnecessary top-level @cypher fields eliminates that attack surface altogether, and expose the GraphQL endpoint only to trusted clients behind network controls to reduce reachability. The advisory at https://github.com/neo4j/graphql/security/advisories/GHSA-8xj4-8gg9-fx9h does not document any workaround beyond patching.

Affected VersionsENISA

@neo4j/graphql 3.23.0 <7.6.4

Affected Packages

euvd neo4j_graphql fix: 7.6.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The @neo4j/graphql library translates GraphQL type definitions into Cypher queries against a Neo4j database and provides an authorization model built on @authentication directives that can be attached at the schema level, on the Query or Mutation type, or on individual fields and user-defined attributes. In the affected versions the check-authentication code path in packages/graphql/src/translate/authorization/check-authentication.ts applied the schema-level annotation and the type-level annotation retrieved from the schema entity model, but the translation path for top-level @cypher fields (packages/graphql/src/translate/translate-top-level-cypher.ts) evaluated only the annotation attached to the operation field itself and never consulted the schema-level or containing Query/Mutation type annotation. The fix commit ef69cc69ff5e97c60d64aa524005f939c5ba3633 consolidates this into an applyAuthenticationAnnotations helper that collects the schema-model annotation, the operation annotation and the field annotation and applies each one in turn for top-level Cypher translation. This maps to CWE-306 (Missing Authentication for Critical Function): the critical function is execution of pre-configured, attacker-reachable Cypher statements, and the enforcement gap is in the authorization layer rather than in Cypher parsing or the database itself.

Know when Neo4j gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Neo4j) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 9.1 CRITICAL

Unauthenticated remote request (AV:N/AC:L/PR:N/UI:N) invokes Cypher under the service account giving high confidentiality and integrity impact; no availability impact and no scope change claimed.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Neo4j).

CVSS VectorVendor: Neo4j

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

In @neo4j/graphql versions up to and including 7.6.3, @authentication directives applied at the schema level or on the Query or Mutation types are silently ignored for top-level fields annotated with @cypher. Only @authentication directives placed directly on the individual fields are enforced. An application that exposes a top-level @cypher field and relies on schema-level or type-level @authentication to protect it allows unauthenticated callers to invoke the field and run the configured Cypher statement with the privileges of the GraphQL service account, which may permit reading and modifying data. Fixed in 7.6.4.

Technical POC Analysis

Bug class: CWE-306, Missing Authentication for Critical Function.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

The Neo4j GraphQL library (@neo4j/graphql) versions up to and including 7.6.3 can silently ignore schema-level and Query/Mutation type-level @authentication directives on top-level @cypher fields, allowing remote callers to execute embedded Cypher with the GraphQL service account's privileges and potentially read or modify data. Organizations relying on schema- or type-level protections are exposed, while those annotating each @cypher field individually are not; no public exploit identified at time of analysis. Leadership should prioritize remediation because the flaw can undermine access controls and create data exposure or integrity risk in production GraphQL APIs.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Medium
popular Neo4j GraphQL library, but only a subset use top-level @cypher fields
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Neo4j

View all
CVE-2018-1000820 CRITICAL POC
10.0 Dec 20

neo4j-contrib neo4j-apoc-procedures version before commit 45bc09c contains a XML External Entity (XXE) vulnerability in

CVE-2021-34371 CRITICAL POC
9.8 Aug 05

Neo4j through 3.4.18 (with the shell server enabled) exposes an RMI service that arbitrarily deserializes Java objects,

CVE-2018-18389 CRITICAL POC
9.8 Oct 16

Due to incorrect access control in Neo4j Enterprise Database Server 3.4.x before 3.4.9, the setting of LDAP for authenti

CVE-2023-23926 HIGH POC
8.1 Feb 16

APOC (Awesome Procedures on Cypher) is an add-on library for Neo4j. Rated high severity (CVSS 8.1), this vulnerability i

CVE-2022-37423 HIGH POC
7.5 Aug 12

Neo4j APOC (Awesome Procedures on Cypher) before 4.3.0.7 and 4.x before 4.4.0.8 allows Directory Traversal to sibling di

CVE-2021-34802 HIGH
8.8 Jul 30

A failure in resetting the security context in some transaction actions in Neo4j Graph Database 4.2 and 4.3 could allow

CVE-2026-92682 HIGH
8.6 Oct 12

Authorization bypass in @neo4j/graphql 7.0.0 through 7.6.3 lets an authenticated user read, create, and delete records t

CVE-2026-5423 HIGH
8.2 Aug 06

JWT authentication bypass in @neo4j/graphql allows unauthenticated remote clients to forge arbitrary JWT claims over Gra

CVE-2026-19869 HIGH
7.6 Aug 18

Authentication bypass in @neo4j/graphql exposes admin-restricted custom-resolver fields to any authenticated user holdin

CVE-2013-7259 MEDIUM
6.8 Apr 29

Multiple cross-site request forgery (CSRF) vulnerabilities in Neo4J 1.9.2 allow remote attackers to hijack the authentic

CVE-2024-34517 MEDIUM
6.5 May 07

The Cypher component in Neo4j 5.0.0 through 5.18 mishandles IMMUTABLE privileges in some situations where an attacker al

CVE-2026-14587 MEDIUM
5.5 Aug 05

Bolt protocol handshake decoder in Neo4j Enterprise and Community Editions fails to distinguish overlong capability mask

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy