### Resumo Existe uma vulnerabilidade de passagem de autorização e divulgação de informações na API de pesquisa de `Openlist'. Devido a uma verificação de caminho não- separador-aware e contagem de backends não filtrados, um usuário de baixo privilégio pode contornar as restrições de `BasePath` para descobrir e acessar metadados de arquivos residentes em diretórios irmãos não autorizados. ### Detalhes Esta vulnerabilidade deriva de duas falhas lógicas combinadas quando o motor de busca `bleve` é utilizado:.

1. ** Validação do Prefixo do Caminho Inseguro:** No manipulador de pesquisa (`server/handles/search.go`), o aplicativo tenta restringir os resultados de pesquisa ao espaço de nomes permitido pelo usuário usando uma simples verificação do prefixo: `strings.HasPrefix(node.Parent, user.BasePath)`. Como esta função não está ciente do separador de caminhos, um usuário com um 'BasePath' restrito a '/base' irá passar com sucesso a verificação da autorização para um diretório completamente separado chamado `/base 2 ` (desde "/base) 2 " começa com "/ base"). 2. ** Não filtrado Total de Contagem Perdas:** O backend `bleve` (`internal/search/bleve/search.go`) pesquisa o índice globalmente e ignora o limite `req.Parent`. Mesmo que o aplicativo mais tarde filtra com sucesso itens não autorizados do array `Content` (por exemplo, através de verificações de meta- senha `CanAccess`), ele ainda retorna a contagem em bruto `Total' fornecida pelo backend de pesquisa. Isto permite que um atacante realize uma acumulação de dados cega, confirmando a existência de arquivos sensíveis fora do seu espaço de nomes, observando a contagem "Total".

### PoC **Prerequisitos:** 1. Faça login como um administrador e defina o Modo de Índice de Pesquisa para `bleve`. Construir o índice. 2. Crie dois diretórios no nível de raiz: `/ base` e `/ base 2 `. 3. Envia um arquivo sensível para a pasta não autorizada: `/ base 2 /secret_financial_report.pdf`. 4. Crie um usuário de teste de baixa prioridade e estritamente defina o seu caminho de `Base` para `/base`. **Passos de exploração:** 1. Autenticar como o usuário de baixo privilégio recém criado. 2. Envie o seguinte pedido HTTP para a API de pesquisa: ```http POST /api/ fs/search HTTP/ 1.1 Host: Autorização: Tipo de conteúdo: aplicativo/json.

{ "pai": "/", "palavras-chave": "secreto", "país": 1, "per_page": 20, "scope": 0 } ``` 3. Observe a resposta: Devido ao bypass do prefixo (`strings.HasPrefix("/base 2 ", "/base") == true`), os metadados para `secret_financial_report.pdf` serão vazados no Conteúdo de resposta. - Alternativamente, mesmo que o acesso seja bloqueado por senhas de nível de pasta, o campo Total retornará > 0, permitindo que o atacante confirme cegamente a existência da palavra- palavra-chave "secreto" em diretórios globais não autorizados. ### Impacto Esta é uma vulnerabilidade de divulgação de informações e de escada de privilégios horizontais/versos. Qualquer usuário autenticado pode enumerar infraestrutura oculta, verificar a existência de arquivos sensíveis (por exemplo, senhas, documentos internos) e extrair metadados de arquivos em todo o espaço de nomes de armazenamento, derrotando completamente o mecanismo de isolamento BasePath.

Recomendações de Remediação 1. Contenção do caminho consciente do separador: Substituir strings.HasPrefix com uma verificação robusta da contenção do caminho. Por exemplo: alvo == strings de base.HasPrefix(alvo, base + "/") ou use um utilitário dedicado como utils.IsSubPath(). 2. Filtração de nível de inverno: Força o limite do caminho dentro da própria consulta do bleve (por exemplo, usando hachas de caminhos dos pais indexadas) em vez de depender apenas da filtragem da API pós- consulta. 3. Cálculo Total preciso: Calcule a contagem Total apenas depois de todos os filtros de autorização e caminho terem sido aplicados ao conjunto de resultados. Registro de aconselhamento: GHSA- p 6 Ph- 3 jx 2 - 3337. Não há nenhum identificador adicional listado.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 22: 32: 17.000 Z e lista a sua última modificação como 2026 - 07 - 24 T 22: 32: 17.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:L/I:N/A:N.

Software afetado e informações de versão: Vá pacote github.com/OpenListTeam/OpenList/v 4 — ECOSISTEM: introduzido 0, corrigido 4.2.4.

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