🇰🇷 한글 설명
Strawberry GraphQL 라이브러리 0.312.3 미만 버전에서 WebSocket 구독 엔드포인트의 인증 우회 취약점이 발견되었습니다. 레거시 graphql-ws 서브프로토콜 핸들러가 connection_init 핸드셰이크 완료 여부를 확인하지 않아, 공격자가 인증 과정을 건너뛰고 구독 메시지를 직접 전송할 수 있습니다.
💡 쉬운 설명
로그인을 해야만 사용할 수 있는 기능에 로그인 과정 없이 바로 접근할 수 있는 보안 구멍이 발견되었습니다. 공격자가 인증 절차를 무시하고 서버의 데이터를 몰래 가로챌 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
Strawberry GraphQL is a library for creating GraphQL APIs. Strawberry up until version 0.312.3 is vulnerable to an authentication bypass on WebSocket subscription endpoints. The legacy graphql-ws subprotocol handler does not verify that a connection_init handshake has been completed before processing start (subscription) messages. This allows a remote attacker to skip the on_ws_connect authentication hook entirely by connecting with the graphql-ws subprotocol and sending a start message directly, without ever sending connection_init. This vulnerability is fixed in 0.312.3.
📍 영향받는 시스템
Strawberry GraphQL version < 0.312.3
⚔️ 공격 벡터
graphql-ws 서브프로토콜을 사용하여 connection_init 메시지 없이 바로 start 메시지를 전송하는 방식
🛡️ 대응 방법
Strawberry GraphQL 라이브러리를 0.312.3 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Version이 0.312.3보다 낮으면 취약한 상태입니다.
pip show strawberry-graphql | grep Version