Skip to main content

Neo4j GraphQL CVE-2026-19869

| EUVDEUVD-2026-61047 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-18 Neo4j
7.6
CVSS 4.0 · Vendor: Neo4j
View

Attack ChainAIDerived

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

  1. Access
    Authenticate and obtain valid non-admin JWT
  2. Delivery
    Send GraphQL request to admin-restricted custom-resolver field
  3. Exploit
    Type-level @authentication evaluated and passed
  4. Execution
    Field-level @authentication silently discarded by library
  5. Persist
    Admin-restricted field executes
  6. Impact
    Unauthorized data access or privileged operation completed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitation requires all four of the following conditions to be simultaneously true: (1) the application runs @neo4j/graphql in a version from 5.2.0 to 5.12.14, 6.0.0 to 6.6.4, or 7.0.0 to 7.5.x; (2) the GraphQL schema defines a type-level @authentication directive on a Query or Mutation type AND at least one field-level @authentication directive on a root custom-resolver field within that same type; (3) the field-level directive enforces a stricter requirement than the type-level directive (e.g., an additional JWT role claim); and (4) the attacker possesses a legitimately issued, correctly signed JWT that satisfies the type-level (coarser) requirement. Applications using only type-level @authentication with no field-level overrides are NOT vulnerable. Applications using only field-level @authentication with no type-level rule are NOT vulnerable. Unauthenticated attackers cannot exploit this - a valid JWT satisfying the type-level check is a hard prerequisite.

Impact

The CVSS 4.0 score of 7.6 (High) with vector AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N is a fair representation of actual risk. The two key risk-limiting signals are AT:P (attack requirements present - the vulnerable directive co-occurrence pattern must be in use) and PR:L (a valid, legitimately issued JWT is required). Applications that use type-level @authentication exclusively, or field-level @authentication exclusively, are not affected; only those that combine both scopes on the same type with a stricter field-level rule are vulnerable. No EPSS data was provided in the input, so exploitation probability cannot be quantified numerically. No CISA KEV listing exists and no public exploit code has been identified, indicating no confirmed widespread exploitation. Where the configuration pattern is present, the impact is high on both confidentiality and integrity - authenticated regular users can read sensitive data or invoke privileged write operations with no additional effort. This is a real, actionable priority for Neo4j GraphQL deployments using the affected directive pattern, not a theoretical high-CVSS-low-real-risk issue.

Exploit ScenarioDerived

An attacker holds a legitimately issued, correctly signed JWT with roles: ["user"], issued by the application's own identity provider. They identify a GraphQL Mutation type protected by a type-level @authentication rule (which their user token satisfies) that also contains an adminDeleteUser mutation field protected by a field-level @authentication rule requiring roles_INCLUDES: "admin". They send a standard GraphQL mutation request with their user token; the library evaluates the type-level rule (passes), discards the field-level admin check, and executes the privileged mutation. No token forgery, no brute force, and no public exploit code is required.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 18, 2026

Authentication bypass in @neo4j/graphql exposes admin-restricted custom-resolver fields to any authenticated user holding a legitimately issued, non-admin JWT. When both a type-level @authentication directive and a stricter field-level @authentication directive are declared on the same Query or Mutation type, the library silently discards the field-level rule and evaluates only the coarser type-level check - meaning a roles: ["user"] token is sufficient to invoke a field that requires roles_INCLUDES: "admin". Affected across three major branches (5.2.0-5.12.14, 6.0.0-6.6.4, 7.0.0-7.5.x); no public exploit or CISA KEV listing identified at time of analysis.

RemediationAI

Upgrade @neo4j/graphql to a patched version: 5.12.15 or later for 5.x deployments, or 7.6.0 or later for 7.x deployments. For the 6.x branch, consult the vendor advisory at https://neo4j.com/security/CVE-2026-19869 for the exact patched release, as the EUVD data indicates 6.6.4 is the last affected version but does not confirm the fix version number. As a compensating control prior to patching, eliminate the conflicting directive pattern: remove the type-level @authentication from the Query or Mutation type and replace it with explicit field-level @authentication directives on every field in that type, ensuring no field relies on type-level inheritance. This sidesteps the evaluation conflict entirely but requires auditing every field for completeness, since missing a field would leave it unprotected. Alternatively, move admin-role enforcement into custom resolver logic directly rather than relying on the directive layer; this is more verbose but removes the framework dependency. Both workarounds carry implementation risk if applied incompletely.

Affected VersionsENISA

GraphQL 7.0.0 <7.6.0
GraphQL 5.2.0 <5.12.15
GraphQL 6.0.0 ≤6.6.4

Affected Packages

euvd graphql fix: 5.12.15, 7.6.0

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 (CPE: cpe:2.3:a:neo4j:graphql:*:*:*:*:*:*:*:*) is Neo4j's official GraphQL schema-generation and query-translation layer, which exposes Neo4j graph database data via a GraphQL API. It provides declarative authorization through @authentication directives that can be applied at the type level (governing an entire Query or Mutation type) and at the field level (governing individual root custom-resolver fields within those types). The defect, assigned CWE-639 (Authorization Bypass Through User-Controlled Key), manifests as a logic error in directive evaluation order: when both directive scopes are present on the same operation type, the authorization pipeline evaluates the type-level rule, short-circuits, and never reaches the field-level rule. The JWT claim check that enforces the stricter field-level requirement - for example, jwt: { roles_INCLUDES: "admin" } - is never executed. No token manipulation is required; the bypass is entirely a server-side evaluation failure.

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 7.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network-accessible GraphQL API requires PR:L (valid user JWT mandatory); AC:L once the vulnerable directive pattern is deployed; no availability impact and no scope change.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/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
Present
Privileges Required
Low
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

Lifecycle Timeline

2
Patch available
Aug 18, 2026 - 17:17 EUVD
CVE Published
Aug 18, 2026 - 16:35 cve.org
HIGH 7.6

DescriptionCVE.org

@neo4j/graphql from 5.2.0 until the patched versions fails to enforce field-level @authentication rules on root custom-resolver fields when a type-level @authentication rule is also present on the same operation type. When both a type-level @authentication (on Query/Mutation) and a field-level @authentication (on a root custom-resolver field within that type) are declared, only the type-level rule is evaluated and the field-level rule is silently discarded. As a result a stricter per-field requirement - such as an admin-role JWT claim (jwt: { roles_INCLUDES: "admin" }) - is never checked, and any client that satisfies the coarser type-level requirement can invoke the more-restricted field. No token forgery is involved: a legitimately issued, correctly signed non-admin token (e.g. roles: ["user"]) is sufficient.

Executive ViewAI

Why It Matters

A critical authentication bypass in @neo4j/graphql silently discards field-level authorization directives when type-level directives coexist, allowing authenticated non-admin users to invoke admin-restricted operations. No public exploit has been identified at time of analysis. Organizations using affected versions (5.2.0-5.12.14, 6.0.0-6.6.4, 7.0.0-7.5.x) face immediate risk of unauthorized administrative access through valid user tokens.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
official Neo4j GraphQL library, enterprise graph database niche
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
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-2026-92681 CRITICAL
9.3 Oct 12

Schema-level and Query/Mutation type-level @authentication directives are silently ignored for top-level @cypher fields

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-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