Duas vulnerabilidades foram encontradas no Snap e permitiram a execução de código como root

Qualys revelado a notícia que eu identifico duas vulnerabilidades (CVE-2021-44731 e CVE-2021-44730) no utilitário snap-confine, enviado com o sinalizador SUID raiz e chamado pelo processo snapd para gerar um ambiente executável para aplicativos distribuídos em pacotes snap.

Na postagem do blog é mencionado que vulnerabilidades permitem que um usuário local sem privilégios consiga a execução de código como root no sistema.

A primeira vulnerabilidade permite um ataque de manipulação de link físico, mas requer a desativação da proteção de hardlinks do sistema (definindo sysctl fs.protected_hardlinks como 0).

O problema é devido a uma verificação incorreta da localização dos executáveis dos utilitários snap-update-ns e snap-discard-ns que rodam como root. O caminho para esses arquivos foi calculado na função sc_open_snapd_tool() com base em seu próprio caminho de /proc/self/exe, permitindo que você crie um link físico para confinar em seu diretório e coloque suas opções para snap-update-ns e snap -discard-ns neste diretório. Quando iniciado a partir de um link físico, o snap-confine como root executará os arquivos snap-update-ns e snap-discard-ns substituídos pelo invasor do diretório atual.

A exploração bem-sucedida desta vulnerabilidade permite que qualquer usuário sem privilégios obtenha privilégios de root no host vulnerável. Os pesquisadores de segurança da Qualys conseguiram verificar a vulnerabilidade de forma independente, desenvolver uma exploração e obter privilégios totais de root nas instalações padrão do Ubuntu.

Assim que a equipe de pesquisa da Qualys confirmou a vulnerabilidade, nos envolvemos na divulgação responsável da vulnerabilidade e coordenamos com fornecedores e distribuições de código aberto para anunciar essa vulnerabilidade recém-descoberta.

A segunda vulnerabilidade é causada por uma condição de corrida e pode ser explorado na configuração padrão da área de trabalho do Ubuntu. Para que o exploit funcione com sucesso no Ubuntu Server, você deve selecionar um dos pacotes da seção "Featured Server Snaps" durante a instalação.

condição de corrida manifestos na função setup_private_mount() chamado durante a preparação do namespace do ponto de montagem para o pacote instantâneo. Esta função cria um diretório temporário "/tmp/snap.$SNAP_NAME/tmp" ou usa um existente para vincular e montar diretórios para o pacote snap nele.

Como o nome do diretório temporário é previsível, um invasor pode alterar seu conteúdo para um link simbólico após verificar o proprietário, mas antes de chamar o sistema de montagem. Por exemplo, você pode criar um link simbólico "/tmp/snap.lxd/tmp" no diretório /tmp/snap.lxd que aponta para um diretório arbitrário e a chamada mount() seguirá o link simbólico e montará o diretório no espaço de nomes.

Da mesma forma, você pode montar seu conteúdo em /var/lib e, substituindo /var/lib/snapd/mount/snap.snap-store.user-fstab, organizar para montar seu diretório /etc no snap do namespace do pacote para carregar sua biblioteca do acesso root substituindo /etc/ld.so.preload.

É observado que criar um exploit acabou sendo uma tarefa não trivial, uma vez que o utilitário snap-confine é escrito usando técnicas de programação seguras (snapd é escrito em Go, mas C é usado para snap-confine), tem proteção baseada em perfis do AppArmor, filtra chamadas de sistema com base no mecanismo seccomp e usa um namespace de montagem para isolamento.

No entanto, os pesquisadores foram capazes de preparar um exploit funcional para obter acesso root no sistema. O código de exploração será lançado algumas semanas após os usuários instalarem as atualizações fornecidas.

Por fim, deve-se mencionar queOs problemas foram corrigidos na atualização do pacote snapd para versões do Ubuntu 21.10, 20.04 e 18.04.

Além das outras distribuições que fazem uso do Snap, foi lançado o Snapd 2.54.3, que, além dos problemas acima, corrige outra vulnerabilidade (CVE-2021-4120), que permite, ao instalar pacotes de plugins especialmente projetados, substituir regras arbitrárias do AppArmor e ignorar as restrições de acesso definidas para o pacote.

Se você interessado em saber mais sobre o assunto, 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: Miguel Ángel Gatón
  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.