{"id":"CVE-2026-5423","state":"PUBLISHED","title":"Subscription Authentication Bypass via Unverified connectionParams.jwt","description":"@neo4j/graphql library versions prior to 7.5.6 fail to verify the authenticity of a client-supplied, pre-decoded JWT object passed through GraphQL subscription connectionParams. As a result, any unauthenticated remote client that can open a GraphQL-over-WebSocket connection can forge arbitrary JWT claims (e.g. sub, roles) in connectionParams.jwt and have them accepted as authenticated identity for the purposes of @authentication and @subscriptionsAuthorization directive evaluation. This allows a fully unauthenticated attacker to receive subscription events that should be restricted to specific authenticated roles/users.\nUpgrade the library to versions 7.5.6+ or 5.12.14+. v6 is end-of-life and will not receive a fix.","publishedAt":"2026-08-06T15:15:29.124Z","updatedAt":"2026-08-06T15:45:22.183Z","severity":{"score":8.2,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","source":"Neo4j"},"assigner":"Neo4j","products":["neo4j graphql"],"affected":[{"vendor":"neo4j","product":"graphql","packageName":"@neo4j/graphql","defaultStatus":"unaffected","versions":[{"version":"7.0.0","status":"affected","lessThan":"7.5.6","versionType":"semver"},{"version":"5.0.0","status":"affected","lessThan":"5.12.14","versionType":"semver"},{"version":"6.0.0","status":"affected","lessThanOrEqual":"6.6.4","versionType":"semver"}],"collectionURL":"https://registry.npmjs.org","repo":"https://github.com/neo4j/graphql"}],"references":["https://neo4j.com/security/CVE-2026-5423","https://github.com/neo4j/graphql/security/advisories/GHSA-fcpg-3fw5-vc65"],"weaknesses":["CWE-302"],"ingestedAt":"2026-10-29T20:12:32.778Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/5xxx/CVE-2026-5423.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-5423","state":"PUBLISHED","datePublished":"2026-08-06T15:15:29.124Z","dateUpdated":"2026-08-06T15:45:22.183Z","assignerShortName":"Neo4j","assignerOrgId":"3b236295-4ccd-4a1f-a1c1-a72eecc8d7b6","dateReserved":"2026-04-02T13:17:29.975Z"},"containers":{"cna":{"title":"Subscription Authentication Bypass via Unverified connectionParams.jwt","descriptions":[{"lang":"en","value":"@neo4j/graphql library versions prior to 7.5.6 fail to verify the authenticity of a client-supplied, pre-decoded JWT object passed through GraphQL subscription connectionParams. As a result, any unauthenticated remote client that can open a GraphQL-over-WebSocket connection can forge arbitrary JWT claims (e.g. sub, roles) in connectionParams.jwt and have them accepted as authenticated identity for the purposes of @authentication and @subscriptionsAuthorization directive evaluation. This allows a fully unauthenticated attacker to receive subscription events that should be restricted to specific authenticated roles/users.\nUpgrade the library to versions 7.5.6+ or 5.12.14+. v6 is end-of-life and will not receive a fix."}],"affected":[{"vendor":"neo4j","product":"graphql","packageName":"@neo4j/graphql","defaultStatus":"unaffected","versions":[{"version":"7.0.0","status":"affected","lessThan":"7.5.6","versionType":"semver"},{"version":"5.0.0","status":"affected","lessThan":"5.12.14","versionType":"semver"},{"version":"6.0.0","status":"affected","lessThanOrEqual":"6.6.4","versionType":"semver"}],"collectionURL":"https://registry.npmjs.org","repo":"https://github.com/neo4j/graphql"}],"references":[{"url":"https://neo4j.com/security/CVE-2026-5423","tags":["vendor-advisory"]},{"url":"https://github.com/neo4j/graphql/security/advisories/GHSA-fcpg-3fw5-vc65","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","subConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","subIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"HIGH","baseScore":8.2,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-302","lang":"en","description":"CWE-302 Authentication bypass by Assumed-Immutable data","type":"CWE"}]}],"providerMetadata":{"shortName":"Neo4j","orgId":"3b236295-4ccd-4a1f-a1c1-a72eecc8d7b6","dateUpdated":"2026-08-06T15:15:29.124Z"},"impacts":[{"capecId":"CAPEC-115","descriptions":[{"lang":"en","value":"CAPEC-115 Authentication Bypass"}]}],"cpeApplicability":[{"operator":"OR","nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:neo4j:graphql:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0.0","versionEndExcluding":"7.5.6"},{"vulnerable":true,"criteria":"cpe:2.3:a:neo4j:graphql:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0.0","versionEndExcluding":"5.12.14"},{"vulnerable":true,"criteria":"cpe:2.3:a:neo4j:graphql:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0.0","versionEndIncluding":"6.6.4"}]}]}],"configurations":[{"lang":"en","value":"The application enables `features.subscriptions` and `features.authorization`, and wires the subscriptions transport (e.g. `graphql-ws`) to forward WebSocket `connectionParams` into the resolver context.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>The application enables `features.subscriptions` and `features.authorization`, and wires the subscriptions transport (e.g. `graphql-ws`) to forward WebSocket `connectionParams` into the resolver context.</p>"}]}],"credits":[{"lang":"en","value":"EQSTLab (https://github.com/EQSTLab)","type":"reporter"}],"source":{"discovery":"EXTERNAL"},"x_generator":{"engine":"Vulnogram 1.0.2"},"solutions":[{"lang":"en","value":"Fixed in 5.12.14 (LTS) and 7.5.6 (current). The 6.x line is end-of-life and will not receive a patch; users on 6.x must upgrade to 5.12.14+ or 7.5.6+.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>Fixed in 5.12.14 (LTS) and 7.5.6 (current). The 6.x line is end-of-life and will not receive a patch; users on 6.x must upgrade to 5.12.14+ or 7.5.6+.</p>"}]}]},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-08-06T15:45:16.532890Z","id":"CVE-2026-5423","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-06T15:45:22.183Z"}}]}}}