Eles encontraram uma vulnerabilidade VFS no Linux que permite o escalonamento de privilégios

Alguns dias atrás foi divulgada a notícia de que a vulnerabilidade foi identificada (já catalogado sob CVE-2022-0185) ena API de contexto do sistema de arquivos fornecida pelo kernel do linux que poderia permitir que um usuário local ganhasse privilégios de root no sistema.

É mencionado que o problema é que um usuário sem privilégios pode obter essas permissões em um contêiner isolado se o suporte para namespaces de usuário estiver ativado no sistema.

Por exemplo, os namespaces de usuário são habilitados por padrão no Ubuntu e no Fedora, mas não são habilitados no Debian e no RHEL (a menos que plataformas de isolamento de contêiner sejam usadas). Além do escalonamento de privilégios, a vulnerabilidade também pode ser usada para sair de um contêiner isolado se o contêiner tiver autoridade CAP_SYS_ADMIN.

Vulnerabilidade existe na função legacy_parse_param() no VFS e é devido à falta de validação adequada do tamanho máximo dos parâmetros fornecidos em sistemas de arquivos que não suportam a API de contexto do sistema de arquivos.

Recentemente, vários amigos da minha equipe CTF Crusaders of Rust e eu encontramos um estouro de heap do kernel Linux de 0 dias. Encontramos o bug por meio de fuzzing com syzkaller e rapidamente o desenvolvemos em uma exploração do Ubuntu LPE. Em seguida, reescrevemos para escapar e fazer root na infraestrutura CTF do Kubernetes do Google. Este bug afeta todas as versões do kernel desde 5.1 (5.16 está em andamento) e foi atribuído a CVE-2022-0185. Já reportamos isso para a distribuição Linux e lista de discussão de segurança, e o bug foi corrigido a partir do lançamento deste artigo.

Passar um parâmetro muito grande pode causar um estouro da variável inteira usada para calcular o tamanho dos dados que estão sendo gravados; o código tem uma verificação de estouro de buffer "if (len > PAGE_SIZE - 2 - size)", que não funciona se o valor do tamanho for maior que 4094 devido a estouro de inteiro pelo limite inferior (estouro de inteiro, quando converte 4096 – 2 – 4095 para unsigned int, obtém 2147483648).

Este bug permite, ao acessar uma imagem FS especialmente criada, causar um estouro de buffer e sobrescrever os dados do kernel seguindo a área de memória alocada. Para explorar a vulnerabilidade, são necessários direitos CAP_SYS_ADMIN, ou seja, autoridade de administrador.

A partir de 2022, nossos colegas de equipe resolveram encontrar um dia 0 em 2022. Não sabíamos exatamente como começar, mas como nossa equipe tinha um alto grau de familiaridade com as vulnerabilidades do kernel Linux, decidimos comprar apenas alguns servidores dedicados. e execute o fuzzer syzkaller do Google. Em 6 de janeiro às 22h30 PST, chop0 recebeu o seguinte relatório de uma falha de KASAN em legacy_parse_param: slab-out-of-bounds Write in legacy_parse_param. Parece que o syzbot encontrou esse problema apenas 6 dias antes ao fuzzing no Android, mas o problema não foi tratado e ingenuamente pensamos que ninguém mais notou.

Por fim, vale ressaltar que o problema vem se manifestando desde a versão 5.1 do kernel Linux e foi resolvido nas atualizações que foram lançadas há poucos dias nas versões 5.16.2, 5.15.16, 5.10.93, 5.4.173.

Além disso atualizações do pacote de vulnerabilidade já foram lançadas para RHELDebianfedora e Ubuntu. Embora a solução ainda não esteja disponível em Arch LinuxGentooSUSE y OpenSuse.

No caso destes, menciona-se que como solução de segurança para sistemas que não utilizam isolamento de container, você pode definir o valor de sysctl "user.max_user_namespaces" para 0:

O pesquisador que identificou o problema publicou uma demonstração de um exploit qO ue permite a execução de código como root no Ubuntu 20.04 na configuração padrão. Está previsto que o código de exploração é publicado no GitHub dentro de uma semana após que as distribuições liberem uma atualização que corrija a vulnerabilidade.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir


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.

  1.   Galego dito

    Mais uma razão para não tocar no snap com um pau.