Pular para o conteúdo principal
Fechar
Infraestrutura

Containers Não Isolam Workloads: CopyFail e DirtyFrag

Gabriel Ferraresi· CEO | Tech8613 de maio de 20266 min
kubernetessegurançalinux kernelcontainerspage cache

Dois CVEs de page cache em duas semanas. Deadline da CISA em 2 dias. E a maioria dos clusters Kubernetes ainda rodando kernels sem patch. Na Tech86, acompanhamos essa situação de perto porque ela confirma algo que repetimos há tempo: containers não são boundaries de segurança. O page cache compartilhado do kernel Linux é o elo fraco que derruba essa premissa — e CopyFail e DirtyFrag são a prova definitiva.

CopyFail: 4 bytes que comprometem um cluster

O CVE-2026-31431 explora um bug no subsistema crypto do kernel Linux, especificamente no algif_aead. O resultado: escrita de 4 bytes controlados no page cache de qualquer arquivo legível no sistema. O bug está presente desde 2017 — quase uma década de superfície de ataque exposta.

O que torna CopyFail particularmente perigoso é a simplicidade do exploit. O PoC tem 732 bytes em Python. É determinístico: sem race condition, sem janela de tempo, sem necessidade de timing preciso. Funciona em Ubuntu, RHEL, Debian e Amazon Linux sem modificação alguma. Em um cluster Kubernetes, o cenário é devastador: um pod não privilegiado corrompe o page cache de um binário compartilhado. O kube-proxy executa esse binário corrompido durante a reconciliação. Dez segundos. Sem interação humana. Cluster comprometido. Validamos essa cadeia em EKS, GKE, AKS e Alibaba Cloud ACK — os quatro principais provedores gerenciados estão vulneráveis.

A CISA adicionou CopyFail ao Known Exploited Vulnerabilities (KEV) catalog com deadline de 15 de maio. Quando escrevemos este artigo, faltavam 2 dias. A maioria dos clusters ainda não havia aplicado o patch.

DirtyFrag: duas variantes, mesma classe

O CVE-2026-43284 e o CVE-2026-43500 formam DirtyFrag — duas variantes encadeadas que exploram os subsistemas ESP (esp4/esp6) e RxRPC do kernel. Mesma classe de vulnerabilidade: page cache write primitive. Descobertas por Hyunwoo Kim, tiveram o embargo quebrado em 7 de maio, com PoC público disponível no GitHub.

Os patches foram mergeados rapidamente: ESP em 7 de maio, RxRPC em 10 de maio. O kernel 7.0.6 inclui ambos. Mas aqui está o problema real: a maioria dos servidores em produção roda kernels de distribuição — Ubuntu 6.17, RHEL 6.12, Amazon Linux 6.12. Esses kernels ainda não receberam os patches pelo canal de atualização convencional. O patch existe upstream, mas não chegou ao node do seu cluster.

A Microsoft confirmou exploração no wild. O GKE publicou o bulletin GCP-2026-030. O AKS deployou hotfixes para ambas as variantes. Isso não é mais um exercício teórico — adversários estão usando essas vulnerabilidades ativamente.

O problema estrutural: page cache é compartilhado

Dirty Pipe (2022). CopyFail (2026). DirtyFrag (2026). Três vulnerabilidades, mesma classe, mesmo subsistema. Page cache write primitive. O padrão é claro — e ignorá-lo é negligência.

O page cache do kernel Linux é compartilhado entre todos os processos do sistema. Containers no mesmo node compartilham esse cache via overlayfs. Não existe isolamento de page cache entre containers. Quando um processo em um container escreve no page cache, essa escrita é visível para todos os outros containers no mesmo node. É assim que o kernel funciona por design.

Bruce Schneier publicou um texto sobre isso: em 2026, o conceito de "local" é enganoso. Todo container, todo job de CI/CD, toda instância WSL2, todo agente de IA com acesso a shell — todos compartilham um kernel. Um LPE de page cache colapsa a fronteira entre workloads. A premissa de que containers isolam aplicações é falsa. Eles isolam namespaces, mas o kernel — e especialmente o page cache — é território compartilhado.

Por que patches não resolvem o problema

A resposta padrão da indústria é "aplique o patch". Mas patches são reativos por natureza. Cada novo page cache write primitive descoberto exige um novo patch, um novo ciclo de deploy, uma nova janela de manutenção. Enquanto isso, os adversários operam na velocidade do PoC público.

O problema é mais profundo. O kernel Linux não foi projetado com isolamento de page cache entre containers em mente. Cada subsistema que interage com o page cache — crypto, rede, filesystem — é uma potencial superfície de ataque. Patches corrigem bugs individuais, mas não mudam a arquitetura fundamental. Enquanto containers compartilharem o mesmo kernel e o mesmo page cache, essa classe de vulnerabilidade vai continuar aparecendo.

Na Tech86, vimos essa dinâmica se repetir. Aplicamos patches de segurança em nossos clusters dentro de horas, não dias. Mas sabemos que o próximo Dirty Pipe, o próximo CopyFail, o próximo DirtyFrag está a caminho. A correção não é mais patches. É arquitetura.

Defesa em profundidade: o que realmente funciona

A proteção contra page cache exploits exige camadas. A primeira é Pod Security Standards no perfil Restricted, com allowPrivilegeEscalation: false obrigatório. Isso não impede a corrupção do page cache, mas bloqueia a escalada final — o momento em que o atacante transforma corrupção de arquivo em execução de código com privilégios elevados.

A segunda camada é redução de superfície de ataque no kernel. Módulos como esp4, esp6 e rxrpc devem ser bloqueados se não são necessários. Menos subsistemas carregados, menos vetores de exploração. A terceira camada é isolamento real do kernel: GKE Sandbox com gVisor, ou Kata Containers, que executam cada pod em um kernel virtualizado separado. O próprio GKE recomenda explicitamente não depender de containers como boundary de segurança.

A quarta camada é monitoramento. Detecção de corrupção de page cache é difícil, mas comportamento anômalo — como um pod tentando acessar arquivos de sistema fora do seu overlay — pode ser detectado com seccomp customizado e ferramentas de runtime security como Falco.

A arquitetura é a correção

Na Tech86, desenhamos Kubernetes com defesa em profundidade desde o início. Seccomp customizado por workload. Pod Security Standards Restricted como padrão, não como exceção. Nodes com kernels atualizados em horas, não semanas. E para workloads que exigem isolamento real, oferecemos ambientes com kernel dedicado — porque sabemos que containers sozinhos não são suficientes.

Se o seu cluster Kubernetes ainda depende da premissa de que containers isolam workloads, é hora de repensar a arquitetura. CopyFail e DirtyFrag mostraram que essa premissa não se sustenta. O próximo page cache write primitive está sendo descoberto agora. A questão não é se ele vai aparecer, mas se o seu cluster vai estar preparado quando ele chegar.

Conheça nossa Cloud Gerenciada e entenda como operamos Kubernetes com as camadas de segurança que essa realidade exige.

Interessado nesta solução?

Conheça nossos serviços gerenciados e infraestrutura.

Conheça Cloud Gerenciada

Perguntas Frequentes

Não. Containers no mesmo node compartilham o kernel Linux e o page cache via overlayfs. Um LPE de page cache permite que um pod corrompa arquivos de outro pod sem violar nenhuma política de namespace.

É uma classe de vulnerabilidade do kernel Linux que permite escrever dados controlados no page cache — o cache de arquivos compartilhado entre todos os processos. Dirty Pipe (2022), CopyFail (CVE-2026-31431) e DirtyFrag (CVE-2026-43284 + CVE-2026-43500) são todos da mesma classe.

Não necessariamente. Os PoCs de CopyFail foram validados em EKS, GKE, AKS e Alibaba Cloud ACK. Clusters gerenciados rodam kernels de distribuição que podem não ter os patches ainda. Verifique a versão do kernel nos nodes.

Parcialmente. O perfil Restricted com allowPrivilegeEscalation: false bloqueia a escalada final do exploit, mas não impede a corrupção do page cache. É uma camada necessária, não suficiente.

Imediatamente. A CISA incluiu CopyFail no KEV com deadline 15 de maio de 2026. A Microsoft confirmou exploração no wild de DirtyFrag. Não é vulnerabilidade teórica — está sendo explorada.

Blog — Fale Conosco

Tem alguma pergunta sobre nossos artigos ou serviços? Nossa equipe está pronta para ajudar.

Agendar Reunião

Reserve um horário.

Agendar Agora

E-mail

Envie uma mensagem.

[email protected]

WhatsApp

Conversa rápida.

Endereço

Avenida Paulista, 1636 - São Paulo - SP - 01310-200

Especialista Tech86

Online agora

Olá! Como podemos ajudar a escalar seu negócio hoje?

Tech86 Engineering

Nós valorizamos sua privacidade

Utilizamos cookies e tecnologias similares para otimizar a sua experiência, analisar o tráfego do site e personalizar conteúdo. Ao clicar "Aceitar Todos", você concorda com o uso de todos os cookies. Leia nossa Política de Privacidade.