Notas de versão do Portainer: Novidades, correções e melhorias de segurança

imagem 62

Problemas conhecidos

Em ambientes Async Edge, pode ser exibida uma data de agendamento de atualização inválida ao navegar por um snapshot. Além disso, há limitações conhecidas no suporte ao Podman: o script de integração automática não oferece suporte a esses ambientes, não é possível adicionar ambientes Podman via socket quando o servidor Portainer está sendo executado no Docker (e vice-versa), e o suporte é limitado a CentOS 9 e Podman 5 rootful.

Novidades e melhorias

Esta versão traz diversas melhorias. Foram adicionadas opções avançadas de drenagem de nós Kubernetes com failover do agente. Também foram introduzidas APIs nativas do Portainer para gravar secrets, configmaps, deployments e persistent volume claims no Kubernetes, substituindo as chamadas de proxy direto ao kube-apiserver, além de uma API genérica de dry-run para manifestos Kubernetes. As configurações de Edge Compute agora podem ser definidas durante a configuração inicial e por meio de flags de linha de comando. Os eventos de autenticação passam a registrar o IP real do cliente a partir do cabeçalho X-Forwarded-For quando a solicitação passa por um proxy confiável. A aba YAML do namespace agora exibe todas as cotas de recursos do namespace. Foi adicionado suporte a GetCharts() no agente Edge assíncrono, permitindo que os dados de gráficos sejam sincronizados na inicialização do agente. As verificações de conectividade do agente Edge agora relatam o progresso durante a sondagem e aguardam mais tempo antes de falhar. Ao criar uma fonte Git, a etapa de seleção do tipo de fonte foi removida. O formulário de origem agora explica as diferenças entre polling do Git e gatilhos de webhook, e expõe a configuração de intervalo de polling que estava ausente na interface. Foi removida a aba única redundante da visão de detalhes do workflow. O texto da dica de ferramenta na criação de registro foi reformulado para tornar o comportamento padrão óbvio. Também foi esclarecido que o Portainer oferece suporte ao Podman apenas por meio de sua API compatível com Docker.

Melhorias de segurança

Foram corrigidas várias vulnerabilidades críticas. Foi corrigido um bypass de autorização no proxy Docker: prefixos de versão de API não reconhecidos, como /v1.47.0/ ou /v01.47/, ignoravam completamente o controle de acesso, permitindo que usuários não administradores acessassem a API do Docker diretamente. Foi fechada uma lacuna restante na correção da CVE-2026-44849 (GHSA-5fxq-qcf3-244w) e ampliadas as restrições de bind-mount para usuários não administradores, incluindo implantações de pilhas Compose e Swarm. Os endpoints Kubernetes de namespace único agora verificam a autorização do namespace do chamador em vez de executar como administrador. Usuários somente leitura e Helpdesk não podem mais visualizar dados de secrets Kubernetes. Usuários padrão não podem mais gerenciar acesso a registros. Negativas de autorização no Kubernetes agora retornam HTTP 403 em vez de 500. Foi corrigida uma falha de autorização no shell Kubernetes: parâmetros de consulta fornecidos pelo chamador podiam substituir o pod alvo definido pelo servidor, permitindo que um usuário padrão executasse comandos em qualquer pod em ambientes Kubernetes gerenciados por agente. A cadeia de ferramentas Go foi atualizada para 1.26.6, corrigindo a CVE-2026-39821 (Crítica, 9.6), uma bypass de validação IDNA em controles de acesso baseados em hostname, juntamente com as CVEs CVE-2026-42505, CVE-2026-39822, CVE-2026-56862, CVE-2026-56860, CVE-2026-56859, CVE-2026-56858, CVE-2026-56853, CVE-2026-46600 e CVE-2026-33818. A biblioteca oras.land/oras-go/v2 foi atualizada para 2.6.2, corrigindo a CVE-2026-50163. O github.com/go-git/go-git/v5 foi atualizado para 5.19.2, corrigindo as CVEs CVE-2026-71556 e CVE-2026-71557. O go.opentelemetry.io/otel foi atualizado para 1.44.0, corrigindo a CVE-2026-41178. O github.com/klauspost/compress foi atualizado para 1.18.7, corrigindo a GHSA-259r-337f-4rfw. A imagem kubectl-shell teve o libcurl atualizado para 8.21.0-r0, abordando as seguintes CVEs: CVE-2026-11856, CVE-2026-10536, CVE-2026-11564, CVE-2026-12064, CVE-2026-11586, CVE-2026-11352, CVE-2026-9547, CVE-2026-9546, CVE-2026-9545, CVE-2026-9080, CVE-2026-9079, CVE-2026-8932, CVE-2026-8927, CVE-2026-8926, CVE-2026-8925, CVE-2026-8924, CVE-2026-8458 e CVE-2026-8286. Por fim, o c-ares foi atualizado para 1.34.8-r0 na imagem kubectl-shell para tratar a CVE-2026-33630.

Correções de bugs

Várias correções foram aplicadas. A remoção de uma pilha agora desinstala a versão Helm subjacente, que antes permanecia em execução. Foi corrigido o problema de cargas de trabalho de pilhas Edge permanecerem ativas após a exclusão no Kubernetes; o arquivo de entrada e o namespace agora são enviados na remoção. Foram corrigidas colisões durante a remoção e reatribuição de pilhas Edge; a pilha antiga é removida antes que a nova seja implantada. Foi corrigido o erro “Lstat /data/edge_stacks//v1: no such file or directory” em agentes assíncronos Kubernetes, persistindo o hash de commit do artefato antes de criar a pilha Edge. As configurações de backup do Azure Blob não estavam sendo salvas; isso foi corrigido resolvendo credenciais redigidas na gravação. A sincronização manual de associação de equipe divergia da sincronização no login; agora ambas usam a mesma implementação. Os campos de metadados de chaves de API gerenciadas pelo servidor eram apagados na atualização de políticas; isso foi corrigido. Espaços em nomes de políticas de configuração causavam erros de rótulo no Kubernetes; agora são tratados. O cartão de Políticas no painel do Kubernetes não contava todos os tipos de políticas aplicadas; foi corrigido. Operações de política agora retornam um erro significativo quando a política não é encontrada, em vez de um simples 404. O botão Editar estava desabilitado para uma pilha de gráfico Helm implantada a partir do GitHub; isso foi corrigido. A barra de título do navegador ficava presa em “Carregando” após uma atualização de página; foi corrigido. Vários toasts de erro apareciam para um intervalo de tempo de métricas superior a 31 dias, e a solicitação tentava novamente em excesso; ambos foram corrigidos. A validação do modal de alerta dessincronizava do campo de entrada; foi corrigido. A navegação “Abrir no OneUptime” usava uma URL incorreta; foi corrigida. O botão Desinstalar estava habilitado na lista de complementos, mas desabilitado na visão de detalhes durante uma instalação em andamento; isso foi corrigido. O botão Reiniciar não é mais exibido para instalações de complementos que falharam.

Funcionalidades obsoletas e removidas

Nenhuma funcionalidade foi marcada como obsoleta ou removida nesta versão.

Contribuições da comunidade desde a versão 2.39.0 LTS

Um enorme agradecimento a todos os colaboradores da comunidade. Esta versão LTS reúne o trabalho das versões STS 2.40 a 2.44, incluindo correções e melhorias contribuídas pelos seguintes membros da comunidade: Nguyen Quang Minh corrigiu o formato do placeholder do escopo OAuth; Zach fez com que caminhos relativos em env_file sejam resolvidos em relação ao diretório do arquivo compose, corrigindo pilhas em subdiretórios Git; Rian Moraes adicionou descrições de variáveis de ambiente como dicas de ferramenta em modelos de aplicação; Siddam Vinay truncou listas de portas publicadas com um selo “mostrar mais” e fez com que falhas precoces de implantação de Swarm assíncrono fossem reportadas em vez de reportar sucesso; Immanuel Tikhonov corrigiu uma incompatibilidade de tipo no cache de registro que impedia o cache de ser acionado; a sintaxe invertida de links markdown na documentação de contribuição foi corrigida; Ion Jaureguialzo Sarasola corrigiu uma falha no Kubernetes ao lidar com manifestos malformados no editor web; Du Feilong e Jerry adicionaram suporte a –security-opt do Docker e auto-cura de cluster Swarm após remoção de manager; e SRIKANTH K fez com que o Portainer tolere cabeçalhos Content-Type OAuth malformados de endpoints de recursos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *