Resumo Um usuário com acesso de gravação a uma base de conhecimento pode excluir diretórios e soltar incorporações de arquivos, pertencentes a bases de conhecimento que não controlam. O objetivo de limpeza de sincronização verificou o acesso de gravação na base de conhecimento nomeada na URL e agiu na pasta e nos ids de arquivos fornecidos no corpo de solicitação sem verificar que esses objetos pertenciam a essa base de conhecimento. ## Precondições Configuração padrão, nenhuma bandeira envolvida. O atacante precisa de acesso de gravação a pelo menos uma base de conhecimento, que vem de possuir um, de um subsídio de acesso de gravação, ou do papel de administrador; `workspace. knowledge ' está desativado por padrão, por isso um usuário comum não pode simplesmente criar um. Eles também precisam do diretório ou do id do arquivo da vítima, que são UUIDs e não são enumeráveis, por isso, na prática, o atacante é alguém que já pode ver a base de conhecimentos do alvo, normalmente um colaborador somente de leitura em um compartilhado. As implantações onde nenhuma base de conhecimento é compartilhada além do seu proprietário não são alcançables.

Impacto O atacante exclui um diretório de destino e, como a exclusão é executada sem mover arquivos para o pai, as associações de arquivo de conhecimento para cada arquivo nessa subárvore também são removidas, assim esses documentos deixam silenciosamente a base de conhecimento da vítima e os resultados de recuperação. Separadamente, a limpeza do vetor por arquivo deixou cair a coleção "file- " independente para qualquer id de arquivo, quebrando o chat- com- arquivo para esse documento. Os arquivos armazenados e suas linhas de banco de dados sobrevivem, uma vez que o caminho foi fechado na propriedade do arquivo, e um dono pode restaurar o estado re- adicionando e reprocessando. Nada sobre o conteúdo da base de conhecimentos alvo é revelado ao atacante. ## Fixar Fixo em 26722. Ambos os loops do corpo do pedido são agora abrangidos pela base de conhecimento no URL: um diretório é resolvido e pulado a menos que o seu ` knowledge_id` coincida, e a limpeza do vetor por arquivo é executada apenas para arquivos que são membros dessa base de conhecimento. A atualização resolve completamente o problema.

Causa raíz Componente afetado: `backend/open_webui/routers/knowledge.py`, manipulador `sync_knowledge_cleanup`, endpoint `POST /api/v 1 /knowledge/ {id}/sync/cleanup`. Configuração afetada: todas as compilações a partir de 0.9.6 em diante, nenhuma dependência opcional envolvida. O manipulador tratou a verificação de gravação- acesso na base de conhecimentos URL como autorização para tudo o que ele fez, mas os objetos em que agiu vieram do corpo de solicitação e foram abordados somente por chave primária. A exclusão do diretório na camada do modelo exclui por id do diretório e não tem noção de uma base de conhecimento parental, então a única coisa que poderia ter ligado os dois juntos foi uma verificação de membro no manipulador, e não havia nenhuma. O endpoint explícito de eliminação de diretórios no mesmo router já tinha essa verificação, o que faz disto uma lacuna em um manipulador em vez de um controle de camada de modelo faltando.

Créditos reportados pelo @whyiug. Registro de aconselhamento: GHSA-jxc 9 - xmc 4 - gr 23. Identificadores relacionados: CVE- 2026 - 70488.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 04 T 20: 35: 47.000 Z e lista a sua última modificação como 2026 - 08 - 04 T 20: 35: 47.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N.

Informações sobre software e versão afetadas: Pacote PyPI open-webui — ECOSISTEM: introduzido 0.9.6, corrigido 0.11.0.

Classificação e evidência: identificadores de fraqueza CWE- 639, CWE- 863. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.