CVE-2026-5423 PUBLISHED

Subscription Authentication Bypass via Unverified connectionParams.jwt

Assigner: Neo4j
Reserved: 02.04.2026 Published: 06.08.2026 Updated: 06.08.2026

@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. Upgrade the library to versions 7.5.6+ or 5.12.14+. v6 is end-of-life and will not receive a fix.

Metrics

CVSS 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
CVSS Score: 8.2

Product Status

Vendor neo4j
Product graphql
Versions Default: unaffected
  • affected from 7.0.0 to 7.5.6 (excl.)
  • affected from 5.0.0 to 5.12.14 (excl.)
  • affected from 6.0.0 to 6.6.4 (incl.)

Affected Configurations

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.

Solutions

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

Credits

  • EQSTLab (https://github.com/EQSTLab) reporter

References

Problem Types

  • CWE-302 Authentication bypass by Assumed-Immutable data CWE

Impacts

  • CAPEC-115 Authentication Bypass