Uma ferramenta de espaço de trabalho compartilhada com um subsídio de leitura devolveu a fonte Python para o destinatário. Qualquer administrador não autentificado que pudesse usar uma ferramenta compartilhada também poderia ler a sua fonte, incluindo qualquer usuário na instância quando uma ferramenta foi compartilhada publicamente. A fonte é destinada a ser um nível de apenas gravador: o esquema de resposta da lista omite deliberadamente e a exportação da fonte fica atrás da sua própria permissão. Os endpoints de leitura o entregaram de qualquer forma. - Autenticação ativada (`WEBUI_AUTH=true`, padrão) e plugins ativados (`ENABLE_PLUGINS=true`, padrão). - O atacante é um não- administrador autenticado sem a permissão `workspace. tools` e sem um subsídio de gravação na ferramenta. - Uma ferramenta é compartilhada com um subsídio de leitura para o atacante, para um dos seus grupos, ou para todos os usuários (` user:*`). As implantações que não compartilham ferramentas, ou só compartilham com usuários que já têm acesso à gravação, não são afetadas.
Um não- administrador obtém a fonte de ferramentas do lado do servidor de outro usuário. A fonte de ferramenta comumente incorpora chaves API codificadas com hard, credenciais e URLs de serviços internos, de modo que a perda prática frequentemente se estende além do código em si. O ataque não precisa de permissão especial além de uma conta comum com a qual uma ferramenta foi compartilhada, e nenhuma interação do usuário. Apenas confidencialidade: não dá nenhuma capacidade de criar, modificar ou executar ferramentas, e nenhuma integridade ou impacto de disponibilidade. Fixado 0.11.0 por commit ` c 05 de 13 b 4 ` (# 27005 ) juntamente com ` 310 ae 9130 `. O endpoint por- ID agora deixa cair a fonte para os chamados sem acesso de gravação, e os dois endpoints da lista não carregam mais a fonte. As especificações da função permanecem visíveis para ler usuários, uma vez que a lista de ferramentas de chat torna as funções de uma ferramenta a partir deles. A execução da ferramenta carrega o lado do servidor do fonte, por isso as ferramentas compartilhadas continuam funcionando. Atualizar para 0.11.0 Resolve completamente o problema sem alteração de configuração. Componentes afetados: ` GET / api/ v 1 / tools/`, `GET / api/v 1 / tools/list` e `GET /api/v 1 /tools/id/{id}` em `backend/open_webui/routers/tools.py`, e os modelos de resposta em `backend/open_webui/models/tools.py`. Cada compilação que carrega as rotas de plug- in é afetada.
O `ToolResponse` deliberadamente omite a fonte e as especificações, mas a sua subclasse `ToolUserResponse` permite campos extras, e cada manipulador construiu sua resposta espalhando um dump completo do modelo de ferramenta. Os campos omitidos foram re- admitidos como extras e serializados de volta para o chamador, por isso o esquema pretendia impor o nível de gravador somente não impôs nada. O caminho de listagem carregava um segundo defeito independente: a bandeira que deveria manter a fonte fora das listas nunca alterou a consulta guardada. Contra uma instância padrão no 0.10.2, com uma conta de administrador e uma segunda conta de papel `user`: 1. Como administrador, crie uma ferramenta cuja fonte contém um segredo de marcador e compartilhe- o somente de leitura com todos:.
``` POST / api/v 1 /tools/create {"id": "poctool", "nome": "PoC Tool", "content": "API_KEY = \"TOOL_SRC_SECRET\"\nclass Tools:\n def hello(self) -> str: retorna 'hi'", "meta": {"descrição": "poc"}, "access_grants": [{"principal_type": "user", "principal_id": "*", "permissão": "leia"}]} ```` 2. Como o não- administrador, chame qualquer um dos três objetivos de leitura:.
``` GET / api/v 1 /tools/list -> 200, item "poctool": write_access=false, content="API_KEY = \"TOOL_SRC_SECRET\"..." ``` A mesma fonte é devolvida pelo ` GET / api/ v 1 / tools/` e ` GET / api/ v 1 /tools/id/pochool`. Ligado 0.11.0 a execução idêntica retorna o item sem fonte para o não- administrador, enquanto o proprietário ainda o recebe.
- bogdancherniy 11 -sudo — relatou a divulgação entre os três endpoints de leitura da ferramenta. Registro de aconselhamento: GHSA- 3 r 7 g-q 6 cg-q 2 vx. Identificadores relacionados: CVE- 2026 - 70491.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 04 T 20: 51: 41.000 Z e lista a sua última modificação como 2026 - 08 - 04 T 20: 51: 41.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:H/I:N/A:N.
Informações sobre software e versão afetadas: Pacote PyPI open-webui — ECOSISTEM: introduzido 0, corrigido 0.11.0. Classificação e evidência: identificadores de fraqueza CWE- 200. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.