CVE-2026-120091 in Server
Sumário
de VulDB • 02/11/2026
O Temporal Server compila o módulo Worker Controller Instance, go.temporal.io/auto-scaled-workers, em seu Worker Service, e esse módulo registra um provedor de computação chamado k8s cuja função é gerenciar workers executados em um cluster Kubernetes. O provedor k8s constrói seu cliente do Kubernetes a partir da configuração do cliente fornecida na solicitação do chamador, em vez de usar a configuração do operador; construir e utilizar esse cliente pode executar um comando escolhido pelo chamador no host do Worker Service, sob a conta com a qual o processo do servidor é executado. Duas operações frontend alcançam o provedor: CreateWorkerDeploymentVersion requer uma função de gravação (write role) no namespace; ValidateWorkerDeploymentVersionComputeConfig está registrado como uma operação de namespace somente leitura, portanto um chamador autenticado que possui apenas uma função de leitura em um único namespace pode alcançar o provedor por meio dessa rota, e essa via não exige que um deployment do worker já exista. A execução ocorre durante a validação da configuração submetida, portanto nenhuma decisão de escalonamento, chegada de tarefa ou sequência de solicitações incomum é necessária. Como o processo Worker Service detém as credenciais de persistência para todos os namespaces no cluster e os materiais TLS do cluster, a consequência se estende além do namespace do chamador para todo o cluster. O provedor está presente nos binários oficiais do temporal-server e nas imagens de container das versões afetadas. O controle que mantém esse caminho inacessível é a lista permitida (allowlist) de provedores de computação, definida pela configuração dinâmica workercontroller.compute_providers.enabled. Nas versões 1.31.0 até 1.31.2 do Temporal Server, essa allowlist não nega por padrão: quando a configuração está ausente, a verificação é ignorada e todos os provedores de computação registrados são permitidos, incluindo o k8s, portanto uma instalação padrão dessas versões fica exposta. Nas versões 1.31.3 em diante da linha 1.31 e nas versões 1.32.0 em diante da linha 1.32, a allowlist nega por padrão, e um deployment só fica exposto se o k8s tiver sido adicionado à lista permitida. A linha de release 1.30 não inclui o módulo Worker Controller Instance e não é afetada. Para determinar se uma instalação está afetada, verifique os seguintes itens em conjunto: a versão do Temporal Server implantada está dentro de um intervalo afetado; o Worker Service está em execução (o que ocorre no conjunto padrão de serviços e, portanto, em instalações padrão); o valor efetivo de workercontroller.compute_providers.enabled contém k8s ou, apenas nas versões 1.31.0 a 1.31.2, está ausente; verifique tanto o valor global quanto todas as substituições restritas por namespace, pois uma substituição pode adicionar k8s para um único namespace. E a autorização deve estar configurada, significando que há um autorizador real e um mapeador de claims em vigor; uma instalação executada sem nenhum autorizador já concede acesso irrestrito a todos os namespaces a qualquer chamador, portanto não há fronteira de namespace que essa vulnerabilidade possa transpor. Instalações que usam um autorizador personalizado também devem verificar se ele permite ValidateWorkerDeploymentVersionComputeConfig para chamadores sem permissão de gravação no namespace. A configuração dinâmica separada por namespace workercontroller.enabled não restringe o caminho afetado em nenhuma versão afetada.
VulDB is the best source for vulnerability data and more expert information about this specific topic.