Guia técnico para aplicar a atualização de segurança SUSE-SU-2026:2640-1 no containerd, corrigindo 4 CVEs com procedimentos zypper, verificação e troubleshooting.
Em 26 de junho de 2026, a SUSE publicou o boletim SUSE-SU-2026:2640-1, uma atualização de segurança de importância important para o containerd que corrige quatro vulnerabilidades, incluindo duas com potencial para negação de serviço (DoS) e uma com vetor de escalação de privilégios.
Este artigo apresenta um roteiro técnico detalhado para a aplicação da correção em ambientes de produção, abordando desde a avaliação de risco até a verificação pós-aplicação.
O containerd é um runtime de containers amplamente adotado em clusters Kubernetes (via CRI) e em ambientes que utilizam Docker. O boletim SUSE-SU-2026:2640-1 aborda as seguintes vulnerabilidades.
A combinação dessas falhas torna a atualização prioritária para qualquer ambiente que exponha serviços gRPC ou HTTP/2, ou que processe entradas externas via go-jose (ex: autenticação JWT) ou IDNA (ex: resolução de nomes internacionalizados).
2. Pré-requisitos
Antes de iniciar o procedimento, verifique:
- Acesso root ou sudo com privilégios para executar zypper.
- Sistema SUSE (SLES, openSUSE Leap ou Tumbleweed) com repositórios oficiais configurados.
- Conhecimento do ambiente: identifique quais serviços dependem do containerd (ex: kubelet, dockerd, containerd próprio).
- Janela de manutenção programada, pois a atualização pode exigir reinicialização do containerd e, consequentemente, dos containers em execução.
2.1. Verificação da versão atual
$ containerd --version containerd github.com/containerd/containerd v1.6.28 4ae5c4a2f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
$ rpm -qa | grep containerd containerd-1.6.28-150000.1.1.x86_64
Caso a versão seja anterior àquela fornecida no boletim (consulte o changelog do pacote), prossiga.
3. Passo a Passo para Aplicação da Correção
3.1. Atualização via Zypper (Método Recomendado)
A SUSE recomenda o uso de zypper patch ou YaST online_update. O comando zypper patch aplica todas as atualizações de segurança pendentes de forma inteligente, respeitando dependências
$ sudo zypper refresh Repository 'SLES15-SP6-Pool' is up to date. Repository 'SLES15-SP6-Updates' is up to date. All repositories have been refreshed. $ sudo zypper patch --cve=CVE-2026-33186,CVE-2026-33814,CVE-2026-34986,CVE-2026-39821
Por que zypper patch em vez de zypper update?
O zypper patch instala apenas patches de segurança e correções de bugs recomendados, sem atualizar pacotes para versões mais recentes que possam introduzir mudanças comportamentais não relacionadas à segurança. Isso reduz o risco de regressões em ambientes críticos.
Saída esperada (exemplo):
Loading repository data... Reading installed packages... Resolving package dependencies... The following package is going to be upgraded: containerd 1 package to upgrade. Overall download size: 12.5 MiB. Already cached: 0 B. After the operation, additional 8.2 KiB will be used. Continue? [y/n/...? shows all options] (y): y
3.2. Atualização Específica do Pacote (Alternativa)
$ sudo zypper update containerd
Vantagem: mais controle sobre o que está sendo atualizado.
Desvantagem: pode ignorar outras correções de segurança dependentes que deveriam ser aplicadas em conjunto.
3.3. Verificação Pós-Atualização
Após a conclusão, confirme a nova versão:
$ containerd --version containerd github.com/containerd/containerd v1.6.29 (ou versão superior com os patches)
Verifique também se o pacote foi corretamente substituído:
$ rpm -q --changelog containerd | grep -i "CVE-2026" - Add fix for CVE-2026-33186 (bsc#1260296) - Add fix for CVE-2026-33814 (bsc#1265794) - Add fix for CVE-2026-34986 (bsc#1262948) - Add fix for CVE-2026-39821 (bsc#1266640)
3.4. Reinicialização do containerd e Serviços Dependentes
A atualização do binário não reinicia automaticamente o serviço. Para que as correções entrem em vigor:
$ sudo systemctl restart containerd
Importante: isso interromperá todos os containers em execução gerenciados por este containerd. Em um cluster Kubernetes, o kubelet reiniciará os Pods automaticamente (dependendo da configuração de PodSandbox). Planeje-se adequadamente.
Para ambientes com dockerd utilizando containerd como runtime:
$ sudo systemctl restart docker
Verifique o status:
$ sudo systemctl status containerd ● containerd.service - containerd container runtime Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2026-06-26 10:15:32 UTC; 2min ago
4. Aprofundamento Técnico: Por Que Cada CVE é Crítico
4.1. CVE-2026-33186 — Bypass de Autorização no gRPC
4.2. CVE-2026-33814 — Loop Infinito no HTTP/2
4.3. CVE-2026-34986 — DoS via JWE sem Chave
A biblioteca go-jose é usada para manipulação de JWT e JWE. Quando um JWE é recebido sem a chave criptografada correspondente, a biblioteca entra em um estado de espera infinita.
Ação corretiva: O patch trata adequadamente a ausência da chave, retornando erro em vez de bloquear.
4.4. CVE-2026-39821 — Bypass de Validação IDNA
📘 Indicação de Leitura
Esse livro é um guia prático e abrangente sobre a segurança do sistema operacional Linux como um todo. O livro ensina a pensar como um atacante para fortalecer a defesa do servidor, abordando tópicos fundamentais como:
- Ferramentas de rede: Nmap, Netcat, knockd.
- Monitoramento: de arquivos e sistemas de arquivos.
- Defesas: contra malware e ataques DDoS.
- Descoberta de vulnerabilidades: como invasores encontram pontos fracos.
Eu ganho uma comissão quando você faz uma compra.
5. Troubleshooting — Problema Comum e Solução
$ sudo zypper patch --cve=CVE-2026-33186 No updates found for the specified CVE identifiers.
Causa mais provável: O repositório de atualizações não está habilitado ou o cache está desatualizado.
Solução:
1. Liste os repositórios ativos:
$ zypper repos --enabled
$ sudo zypper clean $ sudo zypper refresh -f $ sudo zypper patch --cve=CVE-2026-33186
6. Armadilha Comum para Iniciantes
$ sudo systemctl status containerd | grep PID Main PID: 1234 (containerd)
$ sudo systemctl restart containerd
7. Verificação de Segurança Pós-Atualização
$ trivy filesystem --vuln-type os /usr/bin/containerd
Ou verifique a presença dos patches no changelog do RPM, conforme demonstrado na seção 3.3.
A atualização SUSE-SU-2026:2640-1 é crítica para qualquer ambiente que utilize containerd em produção. As quatro CVEs corrigidas abrangem desde negação de serviço até bypass de autorização e escalação de privilégios, com scores CVSS variando entre 7.5 e 9.1.
Recomendações finais:
- Aplique a atualização o mais rápido possível, preferencialmente fora do horário de pico.
- Reinicie o serviço containerd imediatamente após a atualização.
- Monitore os logs do containerd e dos containers nas primeiras horas após a reinicialização para identificar possíveis efeitos colaterais.
- Documente a versão aplicada e a data da intervenção para auditoria.
$ sudo journalctl -u containerd -f --since "2026-06-26 10:00:00"

Nenhum comentário:
Postar um comentário