Uma vulnerabilidade foi identificada no GDM

Um pesquisador de segurança por GitHub tornou conhecido faz pouco você identificou uma vulnerabilidade (CVE-2020-16125) no GNOME Display Manager (GDM), que é responsável por exibir a tela de login.

Combinado com outra vulnerabilidade no serviço de rastreamento de conta (accounts-daemon), o problema permite que o código seja executado como root.  A vulnerabilidade está associada ao lançamento incorreto do utilitário de configuração inicial se for impossível acessar o serviço daemon de conta através do DBus.

Sobre vulnerabilidade

Um usuário sem privilégios pode travar o processo daemon de contas ou desligue, o que criará as condições para o utilitário gnome-initial-setup ser executado a partir do GDM, por meio do qual um novo usuário pode se registrar como membro do grupo sudo, ou seja, ter a capacidade de executar programas como root.

Normalmente, GDM chama gnome-initial-setup para definir o primeiro usuário se não houver contas no sistema. A verificação da existência de contas é feita entrando em contato com o accounts-daemon. Se o processo especificado falhar, o GDM assume que as contas estão faltando e inicia o processo de configuração inicial.

O pesquisador identificou duas maneiras de interromper o processo de contas daemon- O primeiro (CVE-2020-16126) é devido à redefinição de privilégio incorreta e o segundo (CVE-2020-16127) erro durante o processamento de um arquivo ".pam_environment".

Além disso, outra vulnerabilidade foi encontrada nas contas daemon (CVE-2018-14036) causado por verificações de caminho de arquivo incorreto e permitindo que o conteúdo do arquivo arbitrário seja lido no sistema.

As vulnerabilidades no daemon de contas são causadas por mudanças feitas por desenvolvedores do Ubuntu e não aparecem no código daemon de contas principal do projeto FreeDesktop e do pacote Debian.

O problema CVE-2020-16127 está presente em um patch adicionado no Ubuntu que implementa a função is_in_pam_environment, que lê o conteúdo do arquivo .pam_environment do diretório inicial do usuário. Se você colocar um link simbólico para / dev / zero no lugar desse arquivo, o processo daemon de conta trava em operações de leitura infinita e pára de responder às solicitações por meio do DBus.

É incomum que uma vulnerabilidade em um sistema operacional moderno seja tão fácil de explorar. Em algumas ocasiões, escrevi milhares de linhas de código para explorar uma vulnerabilidade. 

A maioria das explorações modernas envolve truques complicados, como usar uma vulnerabilidade de corrupção de memória para falsificar objetos no heap ou substituir um arquivo por um link simbólico com precisão de microssegundo para explorar uma vulnerabilidade TOCTOU. 

Portanto, atualmente é relativamente raro encontrar uma vulnerabilidade que não requer habilidades de codificação para ser explorada. Eu também acho que a vulnerabilidade é fácil de entender, mesmo se você não tiver conhecimento prévio de como o Ubuntu funciona ou experiência em pesquisa de segurança.

A vulnerabilidade CVE-2020-16126 é causada por outro patch que redefine os privilégios do usuário atual ao processar algumas chamadas DBus (por exemplo, org.freedesktop.Accounts.User.SetLanguage).

O processo daemon da conta é executado normalmente como root, o que impede que um usuário normal envie sinais.

Mas, graças ao patch adicionado, privilégios de processo podem ser redefinidos e o usuário pode encerrar esse processo enviando um sinal. Para realizar um ataque, basta criar as condições para remover privilégios (RUID) e enviar um sinal SIGSEGV ou SIGSTOP para o processo daemon da conta.

O usuário termina a sessão gráfica e vai para o console de texto (Ctrl-Alt-F1).
Após o término da sessão gráfica, o GDM tenta exibir a tela de login, mas trava ao tentar obter uma resposta do daemon de contas.

Os sinais SIGSEGV e SIGCONT são enviados do console para o processo daemon da conta, fazendo com que ele trave.

Você também pode enviar sinais antes de sair da sessão gráfica, mas deve fazê-lo com um atraso para ter tempo de terminar a sessão e antes que o sinal seja enviado, o GDM teve tempo de iniciar.

A solicitação ao daemon de contas no GDM falha e o GDM chama o utilitário gnome-initial-setup, em cuja interface é suficiente criar uma nova conta.

A vulnerabilidade foi corrigida no GNOME 3.36.2 e 3.38.2. A exploração da vulnerabilidade foi confirmada no Ubuntu e seus derivados.

fonte: https://securitylab.github.com


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.