Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
bad-epoll — 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. | Kitploit
Ferramentas/GitHubGitHub/j-jaeyoung/bad-epoll
Segurança AndroidEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoCTFAprendizado e EducaçãoExploração de Binários
GitHubj-jaeyoung/bad-epoll

bad-epoll

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.

Ver Repositório
50644há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Bad Epoll: O bug que Mythos perdeu

Bad Epoll exploit em execução: um processo sem privilégios escalando para root

Um processo sem privilégios escalando para root no Google kernelCTF.

Bad Epoll (CVE-2026-46242) é uma race condition use-after-free no subsistema epoll do kernel Linux. Este 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.

Bad Epoll foi reportado e explorado por Jaeyoung Chung como uma submissão 0-day ao Google kernelCTF, que recompensa um exploit do kernel Linux com $71.337+.

[!NOTE] A IA da Anthropic, Mythos, encontrou outro bug de race no mesmo código do epoll, mas perdeu Bad Epoll.


Por que é grave

  1. Um bug raro que pode dar root no Android. A maioria dos bugs de escalonamento de privilégio no Linux não consegue dar root no Android. O 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 dar root no Android. Bad Epoll é uma delas.

    • Bad Epoll também pode ser acionado de dentro da sandbox do renderizador do Chrome, que bloqueia quase todos os outros bugs do kernel. Um exploit do renderizador poderia, portanto, encadear com Bad Epoll para atingir execução de código no kernel, o mesmo impacto que o Project Zero demonstrou em "From Chrome renderer code exec to kernel with MSG_OOB".
  2. Sem kill-switch. Copy Fail e suas variantes podem ser neutralizados descarregando seus módulos vulneráveis, mas o epoll não tem essa opção. É uma funcionalidade central do kernel na qual o sistema operacional, serviços de rede e navegadores confiam. A única maneira de corrigi-lo é aplicar o patch.

  3. Janela de race minúscula, mas o ataque é 99% confiável. A janela de race do bug tem apenas cerca de seis instruções de largura, e uma tentativa normal quase nunca a acerta. O exploit amplia essa janela e executa um loop de repetição que nunca trava o kernel. O resultado é um exploit 99% confiável, como a visão geral do ataque abaixo descreve.


O bug que Mythos perdeu

Um único commit em 2023 introduziu duas race conditions separadas no código do epoll, com apenas cerca de 2.500 linhas no total. Ambas se revelaram bugs críticos que podem levar ao escalonamento de privilégio.

A primeira foi encontrada pelo Mythos da Anthropic e reportada como CVE-2026-43074. Esse resultado é impressionante por si só, porque bugs de race no kernel são conhecidos por serem difíceis de encontrar. Mostrou a capacidade de um modelo de IA de fronteira em encontrar bugs de race. Um pesquisador independente posteriormente submeteu um exploit 1-day para ele ao kernelCTF.

A outra race é Bad Epoll, que Mythos perdeu. Dado que Mythos encontrou o primeiro bug neste 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 perdeu Bad Epoll, mas dois fatores provavelmente a tornaram difícil de encontrar.

  • A janela de race é minúscula. Tem apenas cerca de seis instruções de largura, então o interleaving 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. Após a correção de CVE-2026-43074, o use-after-free de Bad Epoll geralmente não aciona o KASAN, o principal detector de erros de memória do kernel. Sem esse sinal, Mythos pode não ter tido confiança suficiente para reportá-lo como um bug real.

Bad Epoll também foi difícil de corrigir. O primeiro patch dos mantenedores não corrigiu completamente o problema, e um patch correto só foi publicado dois meses após o bug ser reportado pela primeira vez. Isso é muito tempo para um kernel que geralmente lida com problemas de segurança com urgência.

No geral, Bad Epoll mostra como as race conditions 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 a próxima seção mostra, difíceis de explorar de forma confiável. Também sugere uma direção de pesquisa de vulnerabilidades que ainda vale a pena explorar na presença de modelos de IA de fronteira: descobrir o verdadeiro impacto de segurança por trás de condições de temporização estreitas e evidências fracas.


Como o ataque funciona

Aqui está uma visão geral de alto nível do ataque, para os curiosos.

ep_waiter observa ep_target: as estruturas epoll por trás do bug

Dois objetos epoll ligados. Fechar ambos ao mesmo tempo aciona a race.

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 race close-vs-close e como o exploit a direciona através de uma interrupção de timer

A janela de race e como o exploit a direciona.

O exploit usa quatro objetos epoll agrupados em dois pares. Um par aciona a race, enquanto o outro se torna a vítima. A partir daí, o exploit transforma a escrita UAF de 8 bytes em um UAF em um objeto de arquivo e usa um ataque cross-cache para controlar completamente o conteúdo do arquivo.

Leitura arbitrária do kernel: um struct file pendurado apoiado por um pipe vaza endereços do kernel através de /proc/self/fdinfo

Transformando o bug em uma leitura arbitrária de memória do kernel através de /proc/self/fdinfo.

Com esse controle, o exploit obtém uma leitura arbitrária da memória do kernel através de /proc/self/fdinfo. Finalmente, sequestra o fluxo de controle e executa uma cadeia ROP para obter um shell root.

Mais detalhes estão disponíveis no writeup completo do exploit e no código.


Mitigação

Como o epoll não pode ser desabilitado, Bad Epoll não tem uma solução alternativa simples. O único remédio é aplicar o patch.

  • Aplique o commit upstream a6dc643c6931, ou o backport da sua distribuição assim que estiver disponível.

Versões afetadas

Bad Epoll foi introduzido por 58c9b016e128 (2023-04-08) e corrigido por a6dc643c6931 (2026-04-24).

Muitas distribuições Linux podem ser afetadas se usarem kernels baseados em v6.4 ou mais recentes e ainda não tiverem backportado a correção. Verifique as atualizações de segurança do kernel da sua distribuição para um backport do commit de correção acima. Kernels mais antigos baseados em v6.1 não são afetados porque o bug foi introduzido no v6.4.

O exploit atual foi escrito para os seguintes alvos do Google kernelCTF.

  • lts-6.12.67 (LTS), 99% confiável
  • cos-121-18867.294.100 (COS), 98% confiável

O exploit para Android ainda está em andamento.

  • Pixel 10 (kernel v6.6+): o PoC atual aciona o UAF e um exploit completo para root está em andamento. Lançaremos o exploit e o writeup do Android assim que estiverem completos.
  • Pixel 8 e outros dispositivos baseados em v6.1: não afetados, pois o bug foi introduzido no v6.4.

Timeline


FAQ

Por que se chama "Bad Epoll"?

O nome segue a série "Bad" de bugs do kernel que dão root no Android, cujas entradas anteriores incluem Bad Binder, Bad IO_uring e Bad Spin. Bad Epoll é a contraparte do epoll.

Onde posso encontrar os detalhes técnicos?

Esta página é a versão curta. Você pode encontrar a análise completa da causa raiz, o writeup do exploit e o código do exploit nos links a seguir.

  • Writeup da causa raiz
  • Writeup do exploit
  • Código do exploit

Créditos

Bad Epoll foi reportado e explorado por Jaeyoung Chung.

Muito obrigado ao nosso grupo de pesquisa, CompSec Lab, e especialmente a Eulgyu Kim, Woohyuk Choi, Dae R. Jeong e meu orientador Byoungyoung Lee, pela orientação e apoio.

Baixar ferramenta
DataEvento
2023-04-08O bug foi introduzido no epoll (commit 58c9b016e128).
2026-02-17Reportamos o bug para [email protected].
2026-02-17Os mantenedores propuseram um protótipo de patch, mas não era uma correção correta e a discussão então parou.
2026-04-02A correção para o bug que Mythos encontrou (CVE-2026-43074) foi incorporada na mainline.
2026-04-22Reportamos novamente o problema restante.
2026-04-24A correção para este bug foi incorporada na mainline (commit a6dc643c6931).