Uma vulnerabilidade foi descoberta no núcleo do Linux Bad Epoll, registrada como CVE-2026-46242. Ela permite que um usuário local comum, sem direitos especiais, eleve suas permissões a root. Segundo o autor da pesquisa, Jaeon Chong, o problema afeta não apenas desktops e servidores Linux, mas também parte dos dispositivos Android em novas versões do núcleo — isso é destacado separadamente na descrição do Bad Epoll.
O erro está na subsistema epoll — um mecanismo padrão do Linux para monitorar vários descritores de arquivo, conexões de rede e eventos de entrada e saída. Esses mecanismos são amplamente utilizados por servidores, navegadores e serviços de rede, portanto, não se pode simplesmente desativar o epoll. Na análise técnica a vulnerabilidade é descrita como uma condição de corrida, levando a use-after-free: enquanto objetos epoll relacionados estão sendo fechados simultaneamente, uma thread libera estruturas internas, enquanto a outra continua a acessá-las.
Mais precisamente, o problema se manifesta quando um descritor epoll monitora outro, e ambos os descritores são fechados em paralelo. Após a chamada __ep_remove(), o campo file->f_ep é temporariamente zerado, e o __fput() concorrente pode decidir que a limpeza adicional não é mais necessária. Como resultado, o objeto struct eventpoll ou o struct file associado é liberado muito cedo, mas o código continua a operar com ponteiros para a memória já liberada. É isso que fornece ao atacante um vetor para corromper a memória do núcleo.
Não são necessárias capacidades adicionais e nem namespaces de usuário — basta que o CONFIG_EPOLL esteja ativo, tornando o problema especialmente incômodo para sistemas Linux comuns. De acordo com o relatório inicial do pesquisador, o bug foi introduzido no núcleo com o commit 58c9b016e128 em 2023, e foi corrigido pelo commit a6dc643c693.
Apesar da janela de corrida ser muito estreita, o pesquisador preparou um exploit funcional para o Google kernelCTF. Na descrição do exploit é demonstrado como o erro se transforma em uma gravação de 8 bytes em uma estrutura liberada, depois em um vazamento de memória do núcleo através de /proc/self/fdinfo, interceptando file->f_op->poll e uma cadeia ROP para obter root. Para a versão lts-6.12.67, a confiabilidade é de cerca de 99%, para COS — cerca de 98%; o exploit para Android, segundo o autor, ainda está em desenvolvimento.
As versões do núcleo afetadas são aquelas baseadas na ramificação 6.4 e mais recentes, a menos que a correção tenha sido aplicada. Dispositivos Android mais antigos em núcleos 6.1, incluindo o Pixel 8 e modelos semelhantes, estão também em risco. considera-se invulnerável. A única solução normal restante para usuários e administradores é instalar a atualização do kernel do seu distribuição ou fornecedor do dispositivo.
Fonte: linux.org.ru
