Vulnerabilidade no sudo que permite escalonamento de privilégios ao usar regras específicas

Na utilidade Sudo, usado para organizar a execução de comandos em nome de outros usuários, identificado vulnerabilidade (CVE-2019-14287), que permite executar comandos com direitos de root, se houver regras nas configurações do sudoers em que na seção de verificação de ID do usuário após a palavra-chave de permissão “ALL” haja uma proibição explícita de execução com direitos de root (“... (TODOS, !root) ..." ). A vulnerabilidade não aparece nas configurações padrão das distribuições.

Se sudoers tiver regras válidas, mas extremamente raras na prática, que permitem a execução de um determinado comando sob o UID de qualquer usuário que não seja root, um invasor que tenha autoridade para executar este comando pode ignorar a restrição estabelecida e executar o comando com direitos de raiz. Para contornar a limitação, basta tentar executar o comando especificado nas configurações com UID “-1” ou “4294967295”, o que levará à sua execução com UID 0.

Por exemplo, se houver uma regra nas configurações que dê a qualquer usuário o direito de executar o programa /usr/bin/id sob qualquer UID:

meuhost ALL = (ALL, !root) /usr/bin/id

ou uma opção que permite a execução apenas para um usuário específico bob:

meuhost bob = (TODOS, !root) /usr/bin/id

O usuário pode executar “sudo -u '#-1' id” e o utilitário /usr/bin/id será iniciado como root, apesar da proibição explícita nas configurações. O problema é causado pela negligência dos valores especiais “-1” ou “4294967295”, que não levam a uma alteração no UID, mas como o próprio sudo já está rodando como root, sem alterar o UID, o comando de destino também é lançado com direitos de root.

Nas distribuições SUSE e openSUSE, sem especificar “NOPASSWD” na regra, existe uma vulnerabilidade não explorável, já que em sudoers o modo “Defaults targetpw” está habilitado por padrão, o que verifica o UID no banco de dados de senhas e solicita que você insira a senha do usuário de destino. Para tais sistemas, um ataque só pode ser realizado se existirem regras do tipo:

meuhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

Problema corrigido no lançamento Sudo 1.8.28. A correção também está disponível no formulário correção. Nos kits de distribuição, a vulnerabilidade já foi corrigida em Debian, Arch Linux, SUSE / openSUSE, Ubuntu, Gentoo и FreeBSD. No momento em que este artigo foi escrito, o problema permanecia sem solução em RHEL и Fedora. A vulnerabilidade foi identificada por pesquisadores de segurança da Apple.

Fonte: opennet.ru

Adicionar um comentário