Rancher gerenciador de containers divulga vulnerabilidade grave de pontuação CVSS de 9,9
Com a crescente evolução da conteinerização, o Rancher tem se destacado como uma plataforma popular de gerenciamento de contêineres de código aberto, simplificando a implantação do Kubernetes e capacitando as equipes de DevOps a atender aos requisitos de TI. No entanto, recentemente uma vulnerabilidade de segurança foi descoberta na lógica de atualização do Webhook de admissão do Rancher, levantando ameaças.
A vulnerabilidade CVE-2023-22651 (com pontuação CVSS de 9,9) tem origem no Webhook de admissão do Rancher, que é responsável por impor regras de validação e verificações de segurança antes que os recursos sejam admitidos no cluster Kubernetes. Uma falha na lógica de atualização pode levar à configuração incorreta desse Webhook crucial, o que prejudica seus recursos de validação.
Com o Webhook operando em um estado degradado, os recursos não são mais validados, abrindo a porta para graves escalonamentos de privilégios e corrupção de dados, comprometendo a segurança e a integridade do cluster Kubernetes.
Usuários que atualizaram das versões 2.6.x ou 2.7.x do Rancher para 2.7.2 são afetados pela vulnerabilidade CVE-2023-22651, sendo importante ressaltar que usuários que realizaram uma nova instalação da versão 2.7.2 (sem atualização) não são afetados.
Para determinar se sua instância do Rancher foi afetada, execute um comando no cluster local e confira se a saída exibir uma quantidade de webhook igual a 0.
A equipe do Rancher lançou patches para corrigir a vulnerabilidade, com a versão 2.7.3 e posteriores incorporando as correções necessárias. Para aqueles que não conseguem atualizar para uma versão corrigida, uma solução alternativa recomendada é reconfigurar manualmente o Webhook usando o script fornecido. É importante observar que o script deve ser executado de dentro do cluster local ou com um kubeconfig apontando para o cluster local com permissões de administrador.
#!/bin/bash
set -euo pipefail
function prereqs() {
if ! [ -x "$(command -v kubectl)" ]; then
echo "error: kubectl is not installed." >&2
exit 1
fi
if [[ -z "$(kubectl config view -o jsonpath='{.clusters[].cluster.server}')" ]]; then
echo "error: No kubernetes cluster found on kubeconfig." >&2
exit 1
fi
}
function restart_deployment(){
kubectl rollout restart deployment rancher-webhook -n cattle-system
kubectl rollout status deployment rancher-webhook -n cattle-system --timeout=30s
}
function workaround() {
echo "Cluster: $(kubectl config view -o jsonpath='{.clusters[].cluster.server}')"
if ! kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io > /dev/null 2>&1; then
echo "webhook rancher.cattle.io not found, restarting deployment:"
restart_deployment
echo "waiting for webhook configuration"
sleep 15s
fi
local -i webhooks
webhooks="$(kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io --no-headers | awk '{ print $2 }')"
if [ "${webhooks}" == "0" ]; then
echo "Webhook misconfiguration status: Cluster is affected by CVE-2023-22651"
echo "Running workaround:"
kubectl delete validatingwebhookconfiguration rancher.cattle.io
restart_deployment
ret=$?
if [ $ret -eq 0 ]; then
echo "Webhook restored, CVE-2023-22651 is fixed"
else
echo "error trying to restart deployment. try again in a few seconds."
fi
else
echo "Webhook misconfiguration status: not present (skipping)"
fi
echo "Done"
}
function main() {
prereqs
workaround
}
main
14 thoughts on “Rancher gerenciador de containers divulga vulnerabilidade grave de pontuação CVSS de 9,9”
Comments are closed.