В версиях библиотеки @neo4j/graphql до 7.5.6 не удается проверить подлинность предоставленного клиентом предварительно декодированного объекта JWT, передаваемого через ConnectionParams подписки GraphQL. В результате любой неаутентифицированный удаленный клиент, который может открыть соединение GraphQL-over-WebSocket, может подделать произвольные утверждения JWT (например, субтитры, роли) в ConnectionParams.jwt и принять их в качестве аутентифицированных идентификаторов для целей оценки директив @authentication и @subscriptionsAuthorization. Это позволяет злоумышленнику, не прошедшему аутентификацию, получать события подписки, которые должны быть ограничены определенными аутентифицированными ролями/пользователями.
Обновите библиотеку до версий 7.5.6+ или 5.12.14+. Версия v6 устарела и не получит исправлений.
Показать оригинальное описание (EN)
@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.
Характеристики атаки
Последствия
Строка CVSS v4.0