🇰🇷 한글 설명
Open WebUI 0.9.0 이전 버전에서 Redis를 공유하는 다중 인스턴스 배포 시, tool_servers와 terminal_servers 키의 prefix 부재로 인해 키 충돌이 발생합니다. 이를 통해 한 인스턴스의 관리자가 다른 인스턴스의 사용자에게 자신의 도구 서버 설정을 노출할 수 있습니다.
💡 쉬운 설명
여러 개의 Open WebUI를 같은 Redis 저장소로 연결할 때, 한 서버의 설정이 다른 서버를 덮어씌웁니다. 이로 인해 잘못된 도구 서버가 다른 사용자들에게 전달될 수 있습니다.
🇺🇸 원문 (English)
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the tool_servers and terminal_servers keys in utils/tools.py do use a prefix. When two or more Open WebUI instances share a Redis database (a supported and documented deployment pattern, e.g., for multi-region deployments, blue-green setups, or cluster topologies), the unprefixed keys collide. An admin on Instance A writing to tool_servers overwrites the value read by Instance B — causing Instance B's users to receive Instance A's tool server configuration. This vulnerability is fixed in 0.9.0.
📍 영향받는 시스템
Open WebUI < 0.9.0 (Redis 공유 다중 인스턴스 배포: 멀티 리전, Blue-Green, 클러스터 구성)
⚔️ 공격 벡터
Redis를 공유하는 다중 인스턴스 환경에서 한 인스턴스의 관리자가 tool_servers/terminal_servers 설정을 수정하여 다른 인스턴스 사용자에게 악의적 설정 주입
🛡️ 대응 방법
Open WebUI를 0.9.0 이상으로 업그레이드하거나 Redis 키에 인스턴스 ID prefix 추가
🔧 검증 코드
prefix가 있는 키(instance_id:tool_servers 형식)가 출력되면 안전하고, prefix 없는 tool_servers 키만 나타나면 취약합니다.
redis-cli -h <redis-host> keys '*tool_servers*' 2>/dev/null | grep -E '^[a-z0-9_-]+:tool_servers' || echo 'prefix_not_found'