Vulnerabilidade root no sudo, afetando o Linux Mint e o Elementary OS

No utilitário sudo, utilizado para executar comandos em nome de outros usuários, foi identificada vulnerabilidade (CVE-2019-18634), permitindo elevar suas permissões no sistema para o usuário root. O problema se manifesta a partir do lançamento do sudo 1.7.1, somente quando a opção «pwfeedback» está habilitada no arquivo /etc/sudoers, a qual está desativada por padrão, mas ativada em algumas distribuições, como Linux Mint e Elementary OS. O problema foi resolvido na versão sudo 1.8.31, publicada há algumas horas. Nas distribuições, a vulnerabilidade ainda permanece não corrigida.

A opção «pwfeedback» inclui a exibição do caractere «*» após cada caractere digitado ao inserir a senha. Devido a um erro uma falha na implementação da função getln(), definida no arquivo tgetpass.c, uma string com senha muito longa passada pelo fluxo de entrada padrão (stdin) pode não caber no buffer alocado e sobrescrever outros dados na pilha em determinadas condições. O estouro ocorre durante a execução do código sudo com privilégios de root.

A essência do problema é que, ao usar o caractere especial ^U (limpar linha) durante a entrada e em caso de falha na operação de gravação, o código responsável por limpar os caracteres exibidos «*» redefine os dados sobre o tamanho disponível do buffer, mas não retorna o ponteiro para a posição atual no buffer ao seu valor original. Outro fator que contribui para a exploração é a falta de desativação automática do modo «pwfeedback» ao receber dados que não são do terminal, mas através do fluxo de entrada (essa falha permite a criação de condições para um erro de gravação ocorrer, por exemplo, em sistemas com canais unidirecionais não nomeados o erro ocorre ao tentar escrever além do final do canal para leitura).

Como o atacante pode controlar completamente a sobrescrita de dados na pilha, não é difícil criar um exploit que permite elevar suas permissões para o usuário root. O problema pode ser explorado por qualquer usuário, independentemente dos direitos de uso do sudo e da presença de configurações específicas do usuário no sudoers. Para bloquear o problema, deve-se garantir a ausência da configuração «pwfeedback» em /etc/sudoers e, se necessário, desativá-la («Defaults !pwfeedback»). Para verificar a existência do problema, pode-se executar o código:

$ perl -e 'print(('A' x 100 . '\x{00}') x 50)' | sudo -S id
Senha: Falha de segmentação

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster