Description
@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.
Published: 2026-08-18
Score: 7.6 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This is a CWE-639 Authorization Bypass Through User‑Controlled Critical Parameter flaw. @neo4j/graphql fails to enforce field‑level @authentication directives on root custom‑resolver fields when a type‑level @authentication is also declared on the same operation type. The library evaluates only the type‑level rule, discarding the stricter per‑field rule. A client that satisfies the coarse, type‑level requirement can invoke a field that requires a higher privilege, such as an admin‑role JWT claim, without having that privilege. This flaw is not the result of token forgery; a standard, non‑admin, correctly signed token is sufficient for exploitation.

Affected Systems

The vulnerability affects the Neo4j GraphQL library. Versions from 5.2.0 up to <5.12.15 and <7.5.7 are impacted; Neo4j GraphQL 7.5.7+ or 5.12.15+ contain the fix. The v6 series is end‑of‑life and will not receive a patch.

Risk and Exploitability

Based on the description, it is inferred that the attack vector is remote access to the exposed GraphQL endpoint; an attacker with credentials that satisfy the type‑level @authentication may invoke the higher‑privilege field when the stricter rule is not evaluated. The CVSS score of 7.6 indicates a high privilege escalation risk. The EPSS score is missing and the vulnerability is not listed in the CISA KEV catalog, so there is no evidence of widespread exploitation yet.

Generated by OpenCVE AI on August 18, 2026 at 19:21 UTC.

Remediation

Vendor Solution

Upgrade the library to 7.5.7+ or 5.12.15+. v6 is end-of-life and will not receive a fix. v5 releases prior to 5.2.0 are not affected. For users who cannot upgrade immediately: do not combine a type-level @authentication with a field-level @authentication on the same root operation type. Because the type-level annotation is what shadows the field-level rule, removing it restores correct enforcement — instead apply a complete @authentication directive to each root field individually, including the full stricter rule on the sensitive field. Alternatively, enforce the stricter requirement inside the custom resolver's own code.


OpenCVE Recommended Actions

  • Upgrade Neo4j GraphQL to version 7.5.7 or later, or to 5.12.15 or later; v6 is end‑of‑life and cannot be patched.
  • If an upgrade is not immediately possible, remove any type‑level @authentication directives from root operation types so that field‑level rules are evaluated.
  • Enforce the stricter authentication requirement within the resolver logic of the custom field, ensuring that even if the schema annotation is ignored, the code performs the necessary checks.

Generated by OpenCVE AI on August 18, 2026 at 19:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 18 Aug 2026 17:00:00 +0000

Type Values Removed Values Added
Description @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.
Title Privilege Escalation via Dropped Field-Level @authentication
First Time appeared Neo4j
Neo4j graphql
Weaknesses CWE-639
CPEs cpe:2.3:a:neo4j:graphql:*:*:*:*:*:*:*:*
Vendors & Products Neo4j
Neo4j graphql
References
Metrics cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: Neo4j

Published:

Updated: 2026-08-18T19:09:31.066Z

Reserved: 2026-08-14T11:22:26.042Z

Link: CVE-2026-19869

cve-icon Vulnrichment

Updated: 2026-08-18T19:09:28.215Z

cve-icon NVD

Status : Received

Published: 2026-08-18T17:16:57.227

Modified: 2026-08-18T20:17:13.830

Link: CVE-2026-19869

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T20:00:04Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key