Leitura de arquivos fora do armazenamento por caminhos codificados
A validação das URIs kestra:// procura os segmentos literais de subida de diretório, mas aceita os pontos codificados como %2E%2E. Na etapa seguinte, a leitura do caminho decodifica esses pontos para .. e monta o endereço do arquivo sem normalizá-lo. O sistema operacional resolve os segmentos ao abrir o arquivo, permitindo sair do diretório de armazenamento. A conferência do prefixo da execução também aceita o caminho porque os segmentos maliciosos aparecem depois desse prefixo. Um membro autenticado com EXECUTION:READ sobre uma única execução pode acessar arquivos que o processo do Kestra tenha permissão para ler.
Casos de uso afetados
- Você usa o armazenamento local e concede a um membro autenticado a permissão EXECUTION:READ sobre ao menos uma execução própria. A consulta aos arquivos dessa execução permite alcançar arquivos externos ao diretório esperado.
- Na sua instalação com múltiplos tenants e armazenamento local compartilhado, as permissões do processo permitem ler resultados de execuções de outros tenants. O caminho manipulado pode expor esses resultados apesar da separação entre tenants.
- Você mantém arquivos de segredos em volumes montados e legíveis pelo processo do Kestra. Esses arquivos podem ser alcançados pela falha, mesmo quando ficam fora da árvore de armazenamento das execuções.
Confira na sua instância
Confira a versão realmente em execução e compare-a com a faixa correspondente à sua linha. Confirme se a configuração utiliza armazenamento local e revise os membros com EXECUTION:READ. Examine as permissões de leitura do processo sobre os volumes montados para identificar quais arquivos ficam acessíveis. Nos logs das rotas /api/v1/{tenant}/executions/{executionId}/file, /file/metas e /file/preview, procure caminhos com %2E%2E ou %252E%252E, inclusive em letras minúsculas. Faça a mesma conferência nas rotas /api/v1/{tenant}/namespaces/{namespace}/files e /files/stats. A ausência dessas sequências nos logs não confirma que a instância esteja corrigida. Após atualizar para a correção indicada na sua linha, confirme novamente a versão carregada pelo processo.
Versões afetadas e correções
| Linha | Afetadas | Corrigidas |
|---|---|---|
| io.kestra:kestra-core 1.3.x | <= 1.3.18 | 1.3.19 |
| io.kestra:kestra-core 1.0.x | <= 1.0.42 | 1.0.43 |
A falha é identificada também como CVE-2026-45807. Os cinco endpoints compartilham a função de validação vulnerável, portanto uma alteração isolada em um controller deixa os demais caminhos afetados. As versões corrigidas estão disponíveis no projeto, mas você precisa aplicá-las à sua instância.
