Nova falha no kernel do Linux permite escalonamento de privilégios
6 de Julho de 2023

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 hacking e pentest na prática com esse curso gratuito

Passe por todas as principais fases de um pentest, utilizando cenários, domínios e técnicas reais utilizados no dia a dia de um hacker ético. Conte ainda com certificado e suporte, tudo 100% gratuito. Saiba mais...