🇰🇷 한글 설명
@neo4j/graphql 라이브러리 7.5.6 미만 버전에서 GraphQL subscription의 connectionParams를 통해 전달된 JWT 객체의 인증 유효성을 검증하지 않는 취약점이 발견되었습니다. 이로 인해 인증되지 않은 공격자가 임의의 JWT 클레임을 위조하여 권한이 필요한 구독 이벤트를 탈취할 수 있습니다.
💡 쉬운 설명
로그인 없이도 가짜 신분증(JWT)을 만들어 서버에 보낼 수 있는 보안 결함입니다. 이를 통해 공격자는 다른 사용자의 개인적인 알림이나 데이터를 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
@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.
📍 영향받는 시스템
@neo4j/graphql versions < 7.5.6 and < 5.12.14 (v6 is EOL)
⚔️ 공격 벡터
GraphQL-over-WebSocket 연결 시 connectionParams 내의 JWT 객체를 위조하여 전송
🛡️ 대응 방법
라이브러리를 7.5.6 이상 또는 5.12.14 이상 버전으로 업그레이드하십시오.
🔧 검증 코드
출력된 버전이 7.5.6 미만이거나 5.12.14 미만(v6 포함)인지 확인하십시오.