🇰🇷 한글 설명
Open WebUI 0.9.0 미만 버전에서 Redis를 사용하는 경우, 특정 WebSocket 연결 시 토큰 유효성 검증 과정에서 Redis 기반의 토큰 폐기 확인 절차를 누락하는 취약점이 존재합니다. 이로 인해 이미 폐기된 JWT(JSON Web Token)를 사용하여 실시간 연결을 유지할 수 있습니다. 해당 문제는 0.10.0 버전에서 수정되었습니다.
💡 쉬운 설명
로그아웃하거나 권한이 취소된 사용자의 접속 권한이 실시간 통신 기능에서 여전히 유효하게 작동하는 보안 결함입니다. 공격자가 만료된 토큰을 이용해 시스템에 계속 연결되어 있을 위험이 있습니다.
🇺🇸 원문 (English)
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.0 before 0.10.0 with Redis configured, Socket.IO connect, user-join, join-channels, join-note, and the terminal websocket first-message authentication used decode_token without the Redis-backed is_valid_token revocation check, allowing revoked JWTs to continue authenticating realtime connections. This issue is fixed in version 0.10.0.
📍 영향받는 시스템
Open WebUI 0.9.0 이상 0.10.0 미만 버전 (Redis 설정 시)
⚔️ 공격 벡터
폐기된 JWT를 사용하여 Socket.IO 및 WebSocket 연결을 시도하여 인증을 우회함
🛡️ 대응 방법
Open WebUI를 최신 버전인 0.10.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과에 0.10.0 미만의 버전 번호가 나타나면 취약한 상태입니다.
curl -s http://<target-ip>:<port>/version | grep -E '0\.[0-9]+' | grep -v '0.10'