Bug de Décadas em 'wall' do Linux Permite Criação de Falsos Prompts SUDO e Roubo de Senhas
1 de Abril de 2024

Uma vulnerabilidade no comando wall do pacote util-linux, que faz parte do sistema operacional Linux, poderia permitir que um atacante sem privilégios roubasse senhas ou alterasse a área de transferência da vítima.

Identificada como CVE-2024-28085 , a falha de segurança foi apelidada de WallEscape e está presente em todas as versões do pacote nos últimos 11 anos, até a versão 2.40 lançada ontem.

Embora a vulnerabilidade seja um exemplo interessante de como um atacante pode enganar um usuário para obter sua senha de administrador, sua exploração provavelmente é limitada a certos cenários.

Um atacante precisa ter acesso a um servidor Linux que já tenha vários usuários conectados ao mesmo tempo por meio do terminal, como uma faculdade onde os alunos podem se conectar para uma tarefa.

O pesquisador de segurança Skyler Ferrante descobriu o WallEscape, que é descrito como uma "neutralização inadequada de sequências de escape no comando wall".

O WallEscape afeta o comando ‘wall’, que é tipicamente usado em sistemas Linux para transmitir mensagens aos terminais de todos os usuários logados no mesmo sistema, como um servidor.

Como sequências de escape são filtradas inadequadamente ao processar a entrada através de argumentos de linha de comando, um usuário sem privilégios poderia explorar a vulnerabilidade usando caracteres de controle de escape para criar um falso prompt do SUDO nos terminais de outros usuários e enganá-los a digitar sua senha de administrador.

A questão de segurança pode ser explorada sob certas condições.

Ferrante explica que a exploração é possível se a utilidade "mesg" estiver ativa e o comando wall tiver permissões setgid.

O pesquisador observa que ambas as condições estão presentes no Ubuntu 22.04 LTS (Jammy Jellyfish) e no Debian 12.5 (Bookworm), mas não no CentOS.

Código de exploit de conceito para o WallEscape foi publicado para demonstrar como um atacante poderia tirar vantagem do problema.

Juntamente com os detalhes técnicos, Ferrante também inclui cenários de exploração que podem levar a resultados distintos.

Um exemplo descreve as etapas para criar um falso prompt do sudo para o terminal Gnome para enganar o usuário a digitar sua senha.

Ferrante detalha que isso é possível criando um falso prompt do SUDO para o terminal Gnome para enganar o usuário a digitar a informação sensível como um argumento de linha de comando.

Isso requer algumas precauções que são possíveis usando o comando wall para passar ao alvo um script que altera sua entrada no terminal (cor de primeiro plano, oculta digitação, tempo de espera) para que o falso prompt de senha pareça uma solicitação legítima.

Para encontrar a senha, um atacante então teria que verificar o arquivo /proc/$pid/cmdline para os argumentos do comando, que são visíveis para usuários sem privilégios em várias distribuições Linux.

Outro ataque seria alterar a área de transferência de um usuário alvo por meio de sequências de escape.

O pesquisador destaca que este método não funciona com todos os emuladores de terminal, sendo o Gnome um deles.

"Já que podemos enviar sequências de escape pelo wall, se um usuário estiver usando um terminal que suporta essa sequência de escape, um atacante pode alterar a área de transferência da vítima para um texto arbitrário," detalha Ferrante.

O pesquisador fornece no relatório de vulnerabilidade o código de demonstração para configurar a armadilha e realizar o ataque, e também explica como funciona para ambos os cenários de exploração.

É importante notar que a exploração do WallEscape depende do acesso local (físico ou remoto via SSH), o que limita sua gravidade.

O risco vem de usuários sem privilégios com acesso ao mesmo sistema que a vítima em ambientes multiusuário, como o servidor de uma organização.

Usuários são aconselhados a atualizar para a versão 2.40 do linux-utils para corrigir a vulnerabilidade.

Normalmente, a atualização é disponibilizada através do canal de atualização padrão da distribuição Linux no gestor de pacotes, mas pode haver algum atraso.

Administradores de sistema podem mitigar a CVE-2024-28085 imediatamente removendo as permissões setgid do comando ‘wall’ ou desativando a funcionalidade de transmissão de mensagens usando o comando ‘mesg’ para definir sua flag como ‘n’.

Publicidade

Proteja sua empresa contra hackers através de um Pentest

Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...