Foi identificada uma vulnerabilidade no GDM – confira os detalhes dessa ameaça

Infelizmente, foi identificada uma vulnerabilidade no GDM. Confira os detalhes dessa ameaça descoberta por um pesquisador de segurança do GitHub.

Um pesquisador de segurança do GitHub revelou recentemente que identificou uma vulnerabilidade (CVE-2020-16125) no GNOME Display Manager (GDM), que é responsável por exibir a tela de login.

Foi identificada uma vulnerabilidade no GDM – confira os detalhes dessa ameaça

Foi identificada uma vulnerabilidade no GDM – confira os detalhes dessa ameaça

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 por meio do DBus.

Um usuário sem privilégios pode fazer com que o processo accounts-daemon trave ou trave, o que criará as condições para que o utilitário gnome-initial-setup seja executado no 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, o 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 contatando 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: a primeira (CVE-2020-16126) é devido a uma redefinição de privilégio incorreta e a segunda (CVE-2020-16127) erro durante o processamento de um arquivo “.pam_environment”.

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

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 em vez deste arquivo, o processo daemon de conta trava em operações de leitura infinita e pára de responder às solicitações por meio de 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 dos exploits modernos envolvem 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 microssegundos para explorar uma vulnerabilidade TOCTOU.”

“Portanto, hoje em dia é relativamente raro encontrar uma vulnerabilidade que não exija 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 de conta é executado normalmente como root, o que impede que um usuário normal envie sinais.

Mas graças ao patch adicionado, os privilégios do 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 encerra 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 encerrar 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

Sair da versão mobile