Vulnerabilidades no ingress-nginx que permitem que clusters Kubernetes sejam comprometidos

No controlador ingress-nginx desenvolvido pelo projeto Kubernetes, foram identificadas três vulnerabilidades que permitem, na configuração padrão, o acesso às configurações do objeto Ingress, que, entre outras coisas, armazena credenciais de acesso aos servidores Kubernetes, permitindo acesso privilegiado para o aglomerado. Os problemas aparecem apenas no controlador ingress-nginx do projeto Kubernetes e não afetam o controlador kubernetes-ingress desenvolvido pelos desenvolvedores do NGINX.

O controlador de entrada atua como um gateway e é usado no Kubernetes para organizar o acesso da rede externa aos serviços dentro do cluster. O controlador ingress-nginx é o mais popular e usa o servidor NGINX para encaminhar solicitações ao cluster, rotear solicitações externas e balancear a carga. O projeto Kubernetes fornece controladores de entrada principais para AWS, GCE e nginx, o último dos quais não está de forma alguma relacionado ao controlador de entrada de kubernetes mantido por F5/NGINX.

Vulnerabilidades no ingress-nginx que permitem que clusters Kubernetes sejam comprometidos

As vulnerabilidades CVE-2023-5043 e CVE-2023-5044 permitem que você execute seu código no servidor com os direitos do processo do controlador de ingresso, usando “nginx.ingress.kubernetes.io/configuration-snippet” e “nginx.ingress Parâmetros .kubernetes” para substituí-lo .io/permanent-redirect." Entre outras coisas, os direitos de acesso obtidos permitem recuperar um token usado para autenticação no nível de gerenciamento do cluster. A vulnerabilidade CVE-2022-4886 permite ignorar a verificação do caminho do arquivo usando a diretiva log_format.

As duas primeiras vulnerabilidades aparecem apenas em versões do ingress-nginx anteriores à versão 1.9.0, e a última - antes da versão 1.8.0. Para realizar um ataque, um invasor deve ter acesso à configuração do objeto de entrada, por exemplo, em clusters Kubernetes multilocatários, nos quais os usuários têm a capacidade de criar objetos em seu namespace.

Fonte: opennet.ru

Adicionar um comentário