Skip to main content

⚠️ [Ação Necessária] CVE-2026-31431 no Magalu Kubernetes Engine

Boletim relacionado: MC-2026-001 - Copy Fail (CVE-2026-31431)
Data de Publicação: 11/05/2026
Gravidade: 🔴 Crítica


👋 Olá

Na Magalu Cloud, a segurança dos seus dados e a estabilidade da sua infraestrutura são nossas prioridades. Identificamos que a vulnerabilidade crítica CVE-2026-31431 (Copy Fail) documentada no boletim MC-2026-001 possui um vetor de impacto adicional no Magalu Kubernetes Engine (MKE) que exige a sua intervenção direta.

🛡️ O que aconteceu?

Uma falha foi descoberta no módulo algif_aead do Kernel do Linux. Em ambientes de containers, essa falha pode permitir que um usuário mal-intencionado "escape" do isolamento de um container e acesse o sistema operacional do Node, comprometendo a segurança de todo o Cluster.

Mais informações

Você pode conferir os detalhes técnicos completos no site oficial da vulnerabilidade: https://copy.fail/.

☁️ O que nós estamos fazendo?

Nossa equipe de engenharia de plataforma está trabalhando para mitigar os riscos na camada gerenciada:

  1. Novos Clusters e Nodes: Todos os novos Nodes e Clusters criados a partir do dia 15/05/26 já utilizarão uma imagem de sistema operacional corrigida e segura.
  2. Control Plane: À partir do dia 15/05/26 iremos realizar a rotação nos Nodes de Control Plane com as novas imagens para finalizar a mitigação. Essa operação deve ser realizada até o dia 20/05/26.

🚀 O que você precisa fazer?

Diferente da camada gerenciada, os seus Node Pools exigem a sua intervenção para que o patch de segurança seja aplicado.

Para garantir a proteção do seu ambiente com o menor impacto possível, disponibilizamos um DaemonSet para executar o processo de mitigação.

Mitigação via DaemonSet

Recomendamos a aplicação imediata deste patch em todos os seus Clusters MKE.

A aplicação do patch via DaemonSet foi desenhada para ser o mais transparente possível. Esse patch não gera perda de dados, porém, como boa prática de engenharia, recomendamos testar em um ambiente de homologação antes de aplicar em produção e garantir que os seus backups estão em dia e funcionais.

warning

O processo de mitigação foi testado pelo time do MKE, porém, a aplicação do código abaixo está sob sua responsabilidade.

Aplicando o DaemonSet

Crie um arquivo com o nome mgc-patch-copy-fail-cve.yaml com o conteúdo abaixo:

apiVersion: apps/v1
kind: DaemonSet
metadata:
namespace: default
name: mgc-patch-copy-fail-cve
labels:
app: mgc-patch-copy-fail-cve
spec:
selector:
matchLabels:
app: mgc-patch-copy-fail-cve
template:
metadata:
labels:
app: mgc-patch-copy-fail-cve
spec:
hostPID: true
priorityClassName: system-node-critical
containers:
- image: harbor-k8s.csre-plat-prod.1.yel.se1.br.jaxyendy.com/dockerhub/library/busybox:1.37.0
name: mgc-patch-copy-fail-cve
command: ["/bin/sh", "-c"]
args:
- |
echo "install algif_aead /bin/false" > /host/etc/modprobe.d/disable-algif.conf
chroot /host /usr/sbin/modprobe -r algif_aead 2>/dev/null && echo "[OK]: algif module unloaded, CVE-2026-31431 mitigated" || echo "[WARN]: algif module is in use, Node $(cat /host/etc/hostname) needs reboot"
sleep 24h
securityContext:
privileged: true
runAsUser: 0
volumeMounts:
- name: root-host
mountPath: /host
volumes:
- name: root-host
hostPath:
path: /

E aplique com o comando abaixo:

kubectl apply -f mgc-patch-copy-fail-cve.yaml

Verifique os logs do DaemonSet indicando sucesso com o comando abaixo:

kubectl logs --tail 2000 -n default -l app=mgc-patch-copy-fail-cve | grep OK

mgc-patch-copy-fail-cve-bvm4m [OK]: algif module unloaded, CVE-2026-31431 mitigated
[...]

Verifique os logs do DaemonSet indicando falha com o comando abaixo:

kubectl logs --tail 2000 -n default -l app=mgc-patch-copy-fail-cve | grep WARN

mgc-patch-copy-fail-cve-bvm4m [WARN]: algif module is in use, Node k8s-test-001-991f1a92b needs reboot
[...]

Uma possível falha na execução do DaemonSet indica que o módulo está carregado e sendo utilizado por uma aplicação. Caso isso ocorra, é necessário reiniciar o Node manualmente. Para isso, siga os comandos abaixo:

warning

Só é necessário reiniciar o Node manualmente caso haja falhas. Se o último comando retornar vazio, a mitigação está concluída com sucesso.

# Força a remoção de todos os Pods, ignorando os DaemonSets, **Pods que utilizam emptyDir perderão seus dados**
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data --force

# Reinicializa o Node
kubectl debug node/<node-name> -it --image=busybox:1.37.0 -- chroot /host reboot

# Aguarda o Node finalizar a reinicialização (média de 1 minuto)
kubectl wait --for=condition=Ready node/<node-name> --timeout=300s

# Adiciona o Node de volta ao Cluster
kubectl uncordon <node-name>

Após realizar os comandos acima em todos os Nodes que precisam ser reinicializados, execute novamente o comando para verificação da mitigação:

kubectl logs --tail 2000 -n default -l app=mgc-patch-copy-fail-cve | grep WARN

Caso retorne vazio, a mitigação está concluída.

Remover o DaemonSet

Não recomendamos a remoção do DaemonSet até que as novas imagens base do produto de Kubernetes sejam lançadas. Com o DaemonSet ativo, novos Nodes adicionados ao Cluster serão criados com mitigação já aplicada.

À partir da data 15/05/26, o DaemonSet pode ser removido. Para isso, rode o comando abaixo:

kubectl delete daemonset mgc-patch-copy-fail-cve

📞 Precisa de ajuda?

Nossa equipe está à disposição para apoiar você neste processo. Se tiver qualquer dúvida ou precisar de mais informações, acesse o nosso Portal de Atendimento.