Foram divulgadas informações técnicas sobre uma grave vulnerabilidade que afeta várias versões do kernel Linux e pode ser acionada com "capacidades mínimas".
O problema de segurança está sendo chamado de StackRot (
CVE-2023-3269
) e pode ser usado para comprometer o kernel e elevar privilégios.
Um patch está disponível para os kernels estáveis afetados desde 1º de julho e detalhes completos sobre o problema, juntamente com um código de exploração completo, são esperados até o final do mês.
O pesquisador de segurança Ruihan Li descobriu e relatou a vulnerabilidade.
Ele explica em um post hoje que ela afeta o subsistema de gerenciamento de memória do kernel, um componente responsável por implementar a memória virtual e paginação sob demanda, alocação de memória para as necessidades do kernel e programas de espaço do usuário, bem como mapeamento de arquivos no espaço de endereço dos processos.
O StackRot afeta todas as configurações do kernel nas versões do Linux de 6.1 a 6.4.
Embora Li tenha enviado o relatório de vulnerabilidade em 15 de junho, a correção levou quase duas semanas devido à sua complexidade, e Linus Torvalds liderou o esforço.
"Em 28 de junho, durante a janela de mesclagem para o kernel Linux 5.5, a correção foi mesclada na árvore do Linus.
Linus forneceu uma mensagem de mesclagem abrangente para elucidar a série de patches do ponto de vista técnico.
Esses patches foram subsequentemente mesclados em kernels estáveis (6.1.37, 6.3.11 e 6.4.1), resolvendo efetivamente o bug "Stack Rot" em 1º de julho", esclareceu o pesquisador.
O StackRot surge do tratamento que o kernel Linux faz da expansão da pilha dentro do seu subsistema de gerenciamento de memória, ligado ao gerenciamento de áreas de memória virtual (VMAs).
Especificamente, o ponto fraco está na "árvore maple", um novo sistema de estrutura de dados para VMAs introduzido no kernel Linux 6.1, que substituiu as "árvores rubro-negras" e depende do mecanismo de atualização de cópia de leitura (RCU).
A vulnerabilidade é um problema de uso após liberação (UAF) decorrente da forma como a expansão da pilha era tratada, pois a árvore maple poderia substituir um nó sem obter a trava de escrita do gerenciamento de memória (MM).
À medida que o kernel Linux expande a pilha e remove a lacuna entre as VMAs, um novo nó é criado na "árvore maple" e o antigo é marcado para exclusão após a conclusão das leituras atuais devido à segurança da RCU da árvore maple.
No entanto, durante o período de graça da RCU, pode ocorrer um problema de uso após liberação quando um processo acessa o nó antigo, criando assim um contexto explorável para elevar privilégios.
Ruihan Li observa que explorar o StackRot é uma tarefa desafiadora e que o
CVE-2023-3269
pode ser o primeiro exemplo de uma vulnerabilidade teoricamente explorável de uso após liberação por RCU (UAFBR).
No entanto, o pesquisador anunciou planos para divulgar os detalhes técnicos completos sobre o StackRot e um exploit de prova de conceito (PoC) até o final de julho.
O kernel Linux 6.1 foi aprovado como a versão de suporte a longo prazo (LTS) desde fevereiro.
No entanto, nem todas as principais distribuições Linux o adotaram.
Por exemplo, o Ubuntu 22.04.2 LTS (Jammy Jellyfish), cujo suporte padrão termina em abril de 2027, vem com a versão do kernel Linux 5.19.
Por outro lado, o Debian 12 (Bookworm) vem com o kernel Linux 6.1.
Uma lista completa das distribuições Linux que usam a versão do kernel 6.1 ou superior está disponível no DistroWatch.
Os usuários devem verificar a versão do kernel em sua distribuição Linux e escolher uma que não seja afetada pelo StackRot ou uma versão atualizada que contenha a correção.
Publicidade
Aprenda a criar dispositivos incríveis com o especialista Júlio Della Flora. Tenha acesso a aulas prática que te ensinarão o que há de mais moderno em gadgets de hacking e pentest. Se prepare para o mercado de pentest físico e de sistemas embarcados através da certificação SYH2. Saiba mais...