무슨 일이 있었나
0.9.0부터 0.10.0 이전 버전에서 Redis가 구성된 경우, Socket.IO connect, user-join, join-channels, join-note 및 terminal-websocket first-message 인증이 Redis 기반 is_valid_token 취소 상태를 확인하지 않고 decode_token을 사용하여, 취소되거나 로그아웃된 토큰이 이러한 코드 경로에서 계속 사용 가능했습니다.
왜 중요한가
토큰 취소는 손상된 세션을 종료하기 위한 핵심 보안 제어입니다. 이 결함은 취소된 토큰(예: 로그아웃되거나 강제 취소된 계정에서 나온 토큰)을 보유한 공격자가 실시간 채널 및 내장 터미널에 여전히 인증할 수 있으며, 자체 호스팅 AI 플랫폼의 사건 대응 격리를 약화시킵니다.
공격 경로
Redis 기반 is_valid_token 취소 상태가 조회되지 않기 때문에 취소된 JWT 토큰이 Socket.IO/terminal 인증에 대한 decode_token 확인을 통과합니다.
영향받는 시스템
Open WebUI 0.9.0부터 < 0.10.0 (Redis가 구성된 경우)
완화 방안
Open WebUI ≥0.10.0으로 업그레이드