A troca da senha administrativa pode deixar uma credencial antiga válida em outro webserver do Kestra. O segundo aviso afeta a lista de destinos HTTP negados e permite alcançar serviços internos com endereços escritos de outra forma. Confira a autenticação de cada servidor e a configuração das chamadas dos seus fluxos, pois as duas falhas exigem conferências diferentes.
AplicativoKestra
Data do compilado
Vulnerabilidades2
As versões corrigidas informam a disponibilidade da correção no Kestra. Você precisa conferir a versão efetivamente executada em cada componente da sua instalação.
Gravidade altaCVSS: 7,2/10Correção disponível
Senha revogada mantém acesso administrativo em outro servidor do cluster
O BasicAuthService mantém em memória o hash de uma credencial já autenticada. Quando você altera a senha em um webserver, o Kestra atualiza o banco compartilhado e limpa somente o cache desse processo. Outro webserver pode continuar aceitando a credencial antiga sem consultar novamente o registro central. Um invasor que já possuía essa credencial e a usou naquele servidor consegue acessar a alteração de senha e gravar uma senha própria no banco, retirando seu acesso administrativo e conservando o acesso após o reinício do cluster.
Casos de uso afetados
Você mantém pelo menos dois webservers do Kestra com autenticação básica habilitada e o mesmo banco de configurações. A troca da senha por um servidor não invalida a credencial armazenada no cache do outro.
Uma credencial administrativa anteriormente válida foi obtida por um invasor e autenticada em um webserver antes da troca da senha. Esse servidor ainda pode aceitar a credencial revogada para alterar a senha central.
Confira na sua instância
Confira a versão de cada webserver em /api/v1/configs e compare com as correções 1.3.41 e 2.0.0. Verifique também se os servidores compartilham o banco de configurações e usam autenticação básica. Para conferir a revogação em homologação, autentique uma credencial de teste no servidor B, altere a senha pelo servidor A e consulte GET /api/v1/pebble/functions diretamente em cada servidor com a senha antiga. A resposta esperada é 401 em ambos. Um 200 no servidor B mostra que a credencial revogada continua aceita. Repita a consulta com a senha nova para confirmar o acesso válido.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
A senha gravada pelo invasor permanece no banco compartilhado. Reiniciar os webservers depois dessa alteração não restaura a senha legítima.
Gravidade moderadaCVSS: 4,9/10Correção disponível
Lista de destinos negados aceita endereços alternativos em chamadas HTTP
O HttpClient compara o nome do host com a lista de destinos negados sem normalizar endereços de rede nem resolver nomes de servidores. Um IPv4 escrito como número decimal pode alcançar o mesmo destino negado sem corresponder ao endereço cadastrado. Nomes com underscore também escapam dessa comparação porque o parser retorna um host nulo, que o filtro interpreta como ausência de correspondência. Um autor de fluxos pode usar a função http() para consultar serviços internos ou o serviço de metadados da nuvem e receber informações sensíveis, incluindo credenciais, no resultado da expressão.
Casos de uso afetados
Você configurou kestra.tasks.http.denied-list para negar acesso ao serviço de metadados da nuvem. Um autor de fluxos consegue usar uma representação decimal do endereço para contornar a comparação, caso o ambiente permita alcançar esse serviço pela rede.
Seus fluxos usam http() em um ambiente com serviços internos acessíveis por nomes que contêm underscore. A lista de destinos negados não reconhece esses hosts, embora o cliente HTTP consiga estabelecer a conexão.
Confira na sua instância
Confira a versão em execução do io.kestra:kestra-core e a correção 2.0.4. Leia a configuração efetiva de kestra.tasks.http.denied-list e kestra.tasks.http.allowed-list, pois o filtro é opcional. Revise os fluxos que usam http() e procure destinos escritos como IPv4 decimal ou nomes com underscore. Em homologação, use um serviço de teste sem credenciais, cadastrado na lista de destinos negados, para conferir a recusa das duas formas alternativas de endereço. Verifique o erro no fluxo e a ausência da chamada nos logs do serviço de teste. Use esse serviço controlado para a conferência, preservando os metadados reais da nuvem.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
io.kestra:kestra-core
>= 2.0.0
2.0.4
A lista de destinos permitidos rejeita os dois vetores descritos no aviso. A lista de destinos negados é uma restrição parcial e não isola autores de fluxos, que já podem executar scripts nos workers. A gravidade moderada e a pontuação 4.9 seguem os campos da API, embora o texto do comunicado proponha gravidade baixa.
Programador há mais de 20 anos, fundador da Powertic e da Promovaweb. Embaixador do n8n no Brasil e da Baserow, Chatwoot, Miro e Kestra. Membro do Product Team do Mautic.
Canais oficiais
Nossos Links
Encontre a Promovaweb no canal que combina com o seu próximo passo.