open-webui: vulnerabilidade de path traversal no endpoint de cache
O endpoint serve_cache_file() verifica se o caminho do arquivo começa com CACHE_DIR usando startswith, mas sem o separador de diretório (os.
O que mudou
O endpoint serve_cache_file() verifica se o caminho do arquivo começa com CACHE_DIR usando startswith, mas sem o separador de diretório (os.sep). Isso permite que usuários autenticados leiam arquivos de diretórios irmãos cujo nome comece com 'cache' (ex.: cache_sibling, cache_backup).
Quem isso afeta
Qualquer usuário autenticado (papel 'user' ou 'admin') pode ler arquivos de diretórios irmãos que começam com 'cache' localizados adjacentes ao CACHE_DIR configurado. Travessia profunda e caminhos absolutos são bloqueados.
O que fazer hoje
Aplique a correção sugerida: adicione os.sep ao prefixo na verificação startswith. Altere 'file_path.startswith(os.path.abspath(CACHE_DIR))' para 'file_path.startswith(os.path.abspath(CACHE_DIR) + os.sep)'.