
Exploit de escalonamento de privilégios no kernel Linux para CVE-2026-46242, um use-after-free por condição de corrida no epoll, com obtenção de root 99% confiável em desktops, servidores e dispositivos Android.

Um processo sem privilégios escalando para root no kernelCTF do Google.
Bad Epoll (CVE-2026-46242) é uma condição de corrida do tipo 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.
O Bad Epoll foi reportado e explorado por Jaeyoung Chung como uma submissão 0-day ao kernelCTF do Google, que recompensa um exploit de kernel Linux com $71,337+. A submissão do Bad Epoll recebeu uma recompensa de $92,337.
[!NOTE] A IA da Anthropic, Mythos, encontrou outro bug de corrida no mesmo código do epoll, mas deixou passar o Bad Epoll.
Um bug raro que consegue obter root no Android. A maioria dos bugs de escalação de privilégios no Linux não consegue obter root no Android de forma alguma. Copy Fail e suas variantes, por exemplo, precisam de módulos que o Android nunca carrega. Das cerca de 130 vulnerabilidades exploradas no kernelCTF do Google, apenas cerca de dez são candidatas a obter root no Android. O Bad Epoll é uma delas.
Sem botão de desligar. O Copy Fail e suas variantes podem ser neutralizados descarregando seus módulos vulneráveis, mas o epoll não tem essa opção. É um recurso central do kernel do qual o sistema operacional, os serviços de rede e os navegadores dependem. A única forma de corrigi-lo é aplicar o patch.
Janela de corrida minúscula, mas o ataque é 99% confiável. A janela de corrida do bug tem apenas cerca de seis instruções de largura, e uma tentativa normal quase nunca a atinge. O exploit amplia essa janela e executa um loop de repetição que nunca derruba o kernel. O resultado é um exploit 99% confiável, como descreve a visão geral do ataque abaixo.
Um único commit em 2023 introduziu duas condições de corrida separadas no código do epoll, que tem apenas cerca de 2.500 linhas no total. Ambas se revelaram bugs críticos que podem levar à escalação de privilégios.
O primeiro foi encontrado pelo Mythos da Anthropic e reportado como CVE-2026-43074, com detalhes no relatório público da Anthropic, ANT-2026-CM0TCREP. Esse resultado é impressionante por si só, porque bugs de corrida no kernel são conhecidos por serem difíceis de encontrar. Ele mostrou a capacidade de um modelo de IA de fronteira de encontrar bugs de corrida. Um pesquisador independente depois submeteu um exploit 1-day para ele no kernelCTF.
A outra corrida é o Bad Epoll, que o Mythos deixou passar. Dado que o Mythos encontrou o primeiro bug nesse pequeno caminho de código do epoll, é provável que tenha examinado a mesma área com profundidade significativa. Não podemos saber exatamente por que deixou passar o Bad Epoll, mas dois fatores provavelmente o tornaram difícil de encontrar.
A janela de corrida é minúscula. Ela tem apenas cerca de seis instruções de largura, então o entrelaçamento exato das threads é difícil de imaginar mesmo ao olhar para o código vulnerável.
Havia pouca evidência em tempo de execução. Depois que o CVE-2026-43074 é corrigido, o use-after-free do Bad Epoll geralmente não aciona o KASAN, o principal detector de erros de memória do kernel. Sem esse sinal, o Mythos pode não ter tido confiança suficiente para reportá-lo como um bug real.
O Bad Epoll também foi difícil de corrigir. O primeiro patch dos mantenedores não corrigiu totalmente o problema, e um patch correto só chegou dois meses depois que o bug foi reportado pela primeira vez. Isso é muito tempo para um kernel que normalmente trata questões de segurança com urgência.
No geral, o Bad Epoll mostra como as condições de corrida são difíceis em todas as etapas. Elas são difíceis de encontrar mesmo para um modelo de fronteira, difíceis de corrigir corretamente e, como mostra a próxima seção, difíceis de explorar de forma confiável. Isso também sugere uma direção de pesquisa de vulnerabilidades que continua valendo a pena explorar na presença de modelos de IA de fronteira: descobrir impacto de segurança real por trás de condições de timing estreitas e evidências fracas.
[!NOTE] Os pesquisadores independentes Qi Tang e Junxi Qian também reportaram o CVE-2026-43074 à equipe do kernel Linux em 30 de março de 2026, no mesmo dia que a Anthropic. Seus nomes foram omitidos inadvertidamente dos créditos da correção upstream. Agradecemos a Guidong Han por apontar esses relatórios independentes. Os três pesquisadores depois encontraram ainda outra condição de corrida do tipo use-after-free no epoll.
Aqui está uma visão geral de alto nível do ataque, para os curiosos.
Dois objetos epoll vinculados. Fechar ambos ao mesmo tempo aciona a corrida.
Dois dos caminhos de fechamento do epoll são executados ao mesmo tempo e colidem. Um libera um objeto enquanto o outro ainda está escrevendo nele, e isso é o use-after-free (UAF).
A janela de corrida, e como o exploit a conduz.
O exploit usa quatro objetos epoll agrupados em dois pares. Um par aciona a corrida, enquanto o outro se torna a vítima. A partir daí, o exploit transforma a escrita UAF de 8 bytes em um UAF sobre um objeto de arquivo, e usa um ataque cross-cache para controlar totalmente o conteúdo do arquivo.