Bad Epoll (CVE-2026-46242): falha use-after-free no kernel Linux dá root em Linux e Android

Nova falha de escalada de privilégios no kernel Linux permite que processo sem privilégios vire root em desktops, servidores e Android — e pode ser disparada até do sandbox do Chrome. O exploit funciona em 99% das tentativas.

Batizada de Bad Epoll (CVE-2026-46242), uma nova vulnerabilidade no subsistema epoll do kernel Linux permite a um usuário local sem privilégios obter acesso root em servidores Linux e dispositivos Android. A falha, uma clássica use-after-free disparada por uma condição de corrida entre duas threads do kernel, foi encontrada manualmente pelo pesquisador Jaeyoung Chung — em um trecho de código que o modelo Mythos, da Anthropic, já havia inspecionado e onde tinha encontrado apenas a “irmã” da falha (CVE-2026-43074). O exploit funciona em cerca de 99% das tentativas e pode ser disparado inclusive de dentro do sandbox de renderização do Chrome.

O que aconteceu

A CVE-2026-46242 afeta kernels Linux baseados na versão 6.4 em diante, quando ainda não incorporam o patch upstream. Sistemas mantidos em LTS baseados no Linux 6.1 — o que inclui alguns dispositivos Android como o Pixel 8 — não são vulneráveis, porque o commit problemático foi introduzido em 2023, após aquelas séries LTS terem sido bifurcadas. As atualizações de segurança já estão disponíveis e a orientação é aplicar o patch o quanto antes.

O epoll é a API do kernel Linux usada por virtualmente todo servidor moderno para monitorar eventos em muitos descritores de arquivo simultaneamente — do Nginx ao Chromium, do Redis à JVM. Não há workaround prático para desligar o epoll ou proteger a chamada; a única alternativa a longo prazo é o patch. No curto prazo, controles de execução (sandbox, seccomp, contêineres com read-only rootfs) reduzem a superfície, mas não eliminam a falha.

Até o momento, não há evidência de exploração in-the-wild. O único exploit público é a prova de conceito submetida ao kernelCTF do Google. Um exploit para Android ainda está em desenvolvimento, segundo o próprio pesquisador.

Detalhes da vulnerabilidade

Bad Epoll é uma condição de corrida use-after-free: dois caminhos de fechamento do epoll executam simultaneamente, um libera um objeto de kernel enquanto o outro ainda o utiliza. A janela de corrida é de apenas seis instruções de CPU — extremamente pequena — mas o exploit desenvolvido por Chung usa quatro objetos epoll organizados em dois pares (um para disparar a corrida, outro como vítima) e converte a escrita use-after-free de 8 bytes em controle total sobre um objeto file, via um ataque de cross-cache.

A partir daí, o exploit obtém leitura arbitrária de memória do kernel usando /proc/self/fdinfo, sequestra o fluxo de execução e monta uma cadeia ROP para spawnar um shell root. É engenharia ofensiva de altíssimo nível, mas empacotada em um exploit que roda em 99% das tentativas — o que o torna operacionalmente utilizável.

“Bad Epoll (CVE-2026-46242) é uma condição de corrida use-after-free no subsistema epoll do kernel Linux. Esse bug permite que um processo sem privilégios se torne root, não apenas em desktops e servidores Linux mas também em dispositivos Android.” — Jaeyoung Chung, no advisory.

Quem é afetado

  • Servidores Linux rodando kernel 6.4+ sem patch — praticamente qualquer distribuição desktop e server moderna (Ubuntu 24.04+, Fedora recente, Debian testing/unstable, Arch, distros rolling em geral).
  • Dispositivos Android com kernels 6.4+ (Pixel 9 e mais novos, muitos flagships Samsung/Xiaomi 2024/2025).
  • Ambientes de contêiner — o exploit escala do processo userland para root no host, quebrando isolamento de contêiner sem SELinux/AppArmor bem configurado.
  • Provedores de cloud — para instâncias multi-tenant, o vetor local vira problema de segurança entre inquilinos se o kernel do host estiver vulnerável.
  • Browsers baseados em Chromium — o pesquisador afirma que o exploit pode ser disparado a partir do sandbox do renderer do Chrome, transformando a falha em uma cadeia potencial de RCE remota via web.

Análise

O ponto mais interessante deste caso não é técnico, é epistemológico. O mesmo commit de 2023 introduziu duas condições de corrida no epoll, em cerca de 2.500 linhas de código. O modelo Mythos, da Anthropic — que foi noticiado justamente por ter descoberto uma dessas duas falhas de forma autônoma — encontrou a CVE-2026-43074, mas passou por cima da irmã, Bad Epoll. Foi necessário um pesquisador humano, semanas depois, para achá-la.

Isso diz duas coisas ao mesmo tempo. A primeira é que modelos de IA já são competentes o suficiente para achar bugs de race condition em código de kernel, uma das classes mais difíceis de vulnerabilidade que existem. A segunda, e mais importante, é que os limites atuais são reais: uma vez que o primeiro bug foi corrigido, o Bad Epoll parou de gerar sinais claros no KASAN (o sistema de detecção de erros de memória do Linux), o que aparentemente fez a busca automatizada perder o rastro. A intuição humana, treinada para “cheirar” código análogo, ainda tem valor.

Estrategicamente, Bad Epoll se soma a uma lista crescente de falhas de escalada de privilégios no Linux nos últimos 18 meses — Copy Fail, Dirty Frag, Fragnesia, DirtyClone — que redesenhou o modelo de ameaças de qualquer sistema Linux multiusuário. A diferença é que Bad Epoll pertence à velha classe das race conditions, que são mais difíceis de descobrir e explorar, mas também mais difíceis de mitigar. Nenhum patch de userland resolve; é kernel ou nada.

Recomendações práticas

  • Aplique o kernel patch imediatamente em servidores Linux 6.4+ e dispositivos Android que já receberam o boletim de segurança.
  • Priorize hosts multi-tenant (cloud, VPS, laboratórios universitários, ambientes de shared hosting) — o valor de um root local é máximo nesse contexto.
  • Ative KASLR e sistemas de runtime memory protection (LKRG, Kernel Guard) para reduzir a viabilidade do ROP.
  • Contêineres: não confie apenas no namespace de usuário — combine com SELinux/AppArmor, seccomp e read-only rootfs.
  • Chrome/Chromium: mantenha o browser atualizado. O sandbox do renderer sozinho não impede a exploração; é preciso o kernel corrigido no host.
  • Monitore commits do kernel relacionados a epoll e execute regressão de fuzzers (syzkaller, KCSAN) para detectar variantes antes que atacantes as encontrem.

Fonte: Security Affairs