Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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
5064414há 3 mesesRevisado 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

Baixar ferramenta