Nomes DNS permitem contornar a lista de endereços negados
O cliente HTTP do Kestra compara o texto do endereço com as listas kestra.tasks.http.allowed-list e kestra.tasks.http.denied-list, mas não confere os IPs associados ao nome DNS durante essa validação. Um atacante com permissão para criar workflows pode indicar um hostname que aponta para um endereço interno negado. Quando o cliente abre a conexão, a resolução do nome conduz a requisição até esse destino. Essa falha permite requisições forjadas pelo servidor (SSRF), com acesso a serviços alcançáveis pelo Kestra e leitura das respostas pela tarefa Download. A função http() do Pebble também utiliza o cliente afetado.
Casos de uso afetados
- Você restringe o acesso dos workflows à rede interna por IPs ou faixas CIDR na denied-list. Um autor de workflows pode usar um nome DNS que resolve para um desses endereços e alcançar o serviço interno apesar da restrição configurada.
- Sua instalação roda em nuvem e consegue alcançar o serviço de metadados da instância. Um workflow malicioso pode direcionar uma requisição a esse serviço por um nome DNS, caso as condições de rede e de acesso do provedor permitam a conexão.
- Você utiliza expressões Pebble com a função http() e permite que autores de workflows definam o destino da chamada. Como essa função compartilha o cliente HTTP, confira também essas expressões ao revisar os acessos à rede.
Confira na sua instância
Confira a versão do Kestra em execução e compare-a com a faixa afetada. Revise as listas allowed-list e denied-list e as permissões para criar workflows. Em um ambiente de teste sob seu controle, configure um servidor HTTP de teste com o IP incluído na denied-list e um nome DNS apontando para esse mesmo IP. Execute uma tarefa Download pelo endereço literal e outra pelo nome. Confira os logs do Kestra e o registro de acessos do servidor de teste: uma requisição recebida pelo nome demonstra que a restrição foi contornada. No teste documentado, o destino respondeu com HTTP 404 e a execução terminou em WARNING, embora a conexão tivesse ocorrido. Atualize para a versão 2.0.8 informada como corrigida e repita a conferência, verificando que ambas as tentativas sejam recusadas pela restrição de destino.
Versões afetadas e correções
| Linha | Afetadas | Corrigidas |
|---|---|---|
| kestra-io/kestra | >= 2.0.0 <= 2.0.5 | 2.0.8 |
O relato técnico ainda menciona ausência de correção em 03/10/2026, mas o campo patched_versions da API informa 2.0.8. As versões 2.0.6 e 2.0.7 não estão classificadas na faixa fornecida. O comunicado também descreve uma variante com identificador de zona IPv6, analisada no código, sem apresentar a mesma demonstração em execução feita para nomes DNS.
