Duas vulnerabilidades foram detectadas no kernel do Linux que ainda permitiam aos usuários elevar seus privilégios 

vulnerabilidade

Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas

Alguns dias atrás, veio a notícia de que Duas vulnerabilidades foram detectadas em os subsistemas do núcleo linux, Netfilter e io_uring, que permitem que um usuário local eleve seus privilégios no sistema.

A primeira é a vulnerabilidade. (CVE-2023-32233) que foi detectado no subsistema Netfilter e causada pelo acesso à memória use-after-free no módulo nf_tables, que garante a operação do filtro de pacotes nftables.

Este bug ocorre porque o netfilter nf_tables permite atualizar sua configuração para solicitações em lote que se agrupam várias operações básicas em transações atômicas.

O problema foi reproduzido em várias versões do kernel Linux, incluindo Linux 6.3.1 (atual estável) e a vulnerabilidade pode ser explorada enviando solicitações especialmente criadas para atualizar a configuração do nftables. É mencionado que o ataque requer acesso a nftables, que pode ser obtido em um namespace de rede separado se você tiver os direitos CLONE_NEWUSER, CLONE_NEWNS ou CLONE_NEWNET (por exemplo, se você puder executar um contêiner isolado).

Sobre esse bug, o pesquisador que identificou o problema prometeu adiar por uma semana a publicação de informações detalhadas e um exemplo de exploração funcional que fornece um shell de root.

Em um cenário específico, uma solicitação de lote inválida pode conter uma operação que exclui implicitamente um conjunto nft anônimo existente, seguida por outra operação que tenta agir no mesmo conjunto nft anônimo depois que ele é excluído. No cenário acima, um exemplo da operação acima é excluir uma regra nft existente que usa um conjunto anônimo nft. E um exemplo da última operação é uma tentativa de remover um elemento dessa matriz anônima nft depois que a matriz é removida alternadamente, a última operação pode até tentar remover explicitamente essa matriz anônima nft novamente. 

Como já mencionado no início, isso foi há vários dias e o exploit e as informações já foram divulgados. O exploit, bem como seus detalhes, podem ser encontrados no seguinte link.

A segunda falha detectada, foi a vulnerabilidade (CVE-2023-2598) em a implementação da interface I/O assíncrona io_uring incluído no kernel do Linux desde a versão 5.1.

O problema é causado por um bug na função io_sqe_buffer_register, que permite acesso à memória física fora dos limites de um buffer alocado estaticamente. O problema aparece apenas na ramificação 6.3 e será corrigido na próxima atualização 6.3.2.

É mencionado que a ideia por trás do commit original é que, em vez de dividir páginas grandes armazenadas em buffer em entradas bvec individuais, você pode ter uma única entrada bvec para todas as partes armazenadas em buffer da página. Especificamente, se todas as páginas no mapa de buffer usarem a estrutura da primeira página e o tamanho do buffer em uma única entrada bvec em vez de mapear cada página individualmente.

Portanto, o bvec se estenderá muito além da única página que realmente pode tocar. Posteriormente, IORING_OP_READ_FIXED e IORING_OP_WRITE_FIXED nos permitem ler e escrever no buffer (ou seja, a memória apontada pelo bvec) à vontade. Isso permite acesso de leitura/gravação à memória física por trás da única página que realmente temos.

A publicação da vulnerabilidade menciona as etapas de reprodução do erro:

1. Crie um memfd
2. Erro em uma única página nesse descritor de arquivo
3. Use MAP_FIXED para mapear esta página repetidamente, para locais consecutivos
4. Registre toda a região que você acabou de preencher com essa página como
um buffer fixo com IORING_REGISTER_BUFFERS
5. Use IORING_OP_WRITE_FIXED para gravar o buffer em algum outro arquivo
(leitura OOB) ou IORING_OP_READ_FIXED para ler dados no buffer (
Gravação OOB).

Finalmente, vale a pena mencionar que já está disponível  um protótipo de exploit funcional (CVE-2023-2598) para teste, permitindo que você execute código com privilégios de kernel.

Vulnerabilidade (CVE-2023-32233) foi corrigido na atualização 6.4-rc e você pode acompanhar a correção da vulnerabilidade nas distribuições nas páginas: DebianUbuntuGentooRHELFedoraSUSE / openSUSEarco.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.