CVE-2026-92683
Incomplete evaluation of multi-condition JWT where filter in @authentication in @neo4j/graphql
Incorrect authorization in the @authentication directive JWT where filter evaluation in Neo4j @neo4j/graphql versions 7.0.0 before 7.6.7 allows an attacker holding an otherwise-valid JWT to bypass all but the first filter condition via a multi-condition jwt where filter written in generic operator syntax.
Fixes and workarounds
Fix
Upgrade @neo4j/graphql to version 7.6.7 or later.
Source: CNA: Neo4jWorkaround
For versions prior to 7.6.7, express multi-condition jwt where filters either with an explicit AND array (for example jwt: { AND: [{ iss: { eq: "https://idp.example.com" } }, { roles: { includes: "admin" } }] }) or with the inline operator syntax (for example roles_INCLUDES: "admin"). Both forms evaluate all conditions.
Source: CNA: Neo4jAffected products and versions
| Product | Versions | Authority |
|---|---|---|
| @neo4j/graphql Neo4j @neo4j/graphql
https://registry.npmjs.org |
≥ 7.0.0; < 7.6.7 (affected, semver)
Other versions: unaffected |
CNA: Neo4j |
Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.
CVSS assessments
| Version / score | Vector | Authority |
|---|---|---|
| 4.0 / 8.6 high |
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 | CNA: Neo4j |
Exploit evidence
No exploit evidence in collected sources. This is not proof of no exploitation.
References
- https://github.com/neo4j/graphql/security/advisories/GHSA-58qp-3mmm-5vh8CNA: Neo4j · vendor-advisory
For agents and automation
Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.
Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.
Endpoints and access details
https://api.y2.dev/api/v2/cyber/cveshttps://api.y2.dev/api/v2/cyber/cves/{cveId}
A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.
For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.