Injeção de SQL nos filtros de labels permite executar comandos
O Kestra concatena a chave e o conteúdo dos filtros de labels na consulta SQL, sem separar a entrada recebida da instrução executada. No endpoint GET /api/v1/main/flows/search, uma requisição autenticada pode acrescentar outra instrução à consulta. No PostgreSQL da instalação padrão com docker-compose, o comando COPY ... TO PROGRAM permite executar comandos do sistema no ambiente do banco. Com o H2, o comunicado demonstra a gravação arbitrária de arquivos pela função FILE_WRITE(), que também permite sobrescrever arquivos no servidor e pode viabilizar a execução de código.
Casos de uso afetados
- Você mantém o Kestra com PostgreSQL na configuração padrão do docker-compose e utiliza a busca de flows por labels. Um link preparado para essa busca pode acionar a falha quando você o abre com uma sessão autenticada.
- Sua instalação utiliza o H2 como banco do Kestra. Os filtros de labels também permitem injeção de SQL nessa implementação, com possibilidade de gravar ou sobrescrever arquivos acessíveis ao processo do banco.
- Você exporta ou exclui flows por uma consulta filtrada por labels. O comunicado identifica essas ações como caminhos que chegam ao mesmo método vulnerável de construção da consulta.
Confira na sua instância
Confira a versão informada pelo Kestra em execução, inclusive a imagem efetivamente usada pelo container, e compare-a com as faixas abaixo. Identifique na configuração se o banco é PostgreSQL ou H2. Depois da atualização, faça uma busca por uma label conhecida e confirme o resultado. Em homologação, complemente a conferência com filtros cujas chaves e valores contenham aspas ou colchetes, verificando nos testes de integração que esses caracteres permanecem como conteúdo do filtro e não alteram a estrutura da consulta. Esse teste complementa a conferência da versão corrigida. Não execute os exemplos de exploração do comunicado em produção.
Versões afetadas e correções
| Linha | Afetadas | Corrigidas |
|---|---|---|
| Kestra | v1.3.6 and before | v1.3.7 and after, v1.0.35 |
O aviso também identifica a falha como CVE-2026-34612. A pontuação oficial da API é 9,9, apesar de o corpo do comunicado apresentar uma estimativa diferente. A v1.0.35 aparece explicitamente entre as versões corrigidas, embora a faixa afetada tenha redação ampla. A correção disponível no projeto exige que você atualize a instância.
