No utilitário , utilizado para executar comandos em nome de outros usuários, (), que permite a execução de comandos com privilégios de root, na presença de configurações no sudoers onde, na seção de verificação do identificador de usuário após a palavra-chave permissiva "ALL", há uma proibição explícita de execução com direitos de root ("… (ALL, !root) …"). Nas configurações padrão das distribuições, a vulnerabilidade não se manifesta.
Na presença de regras no sudoers que são válidas, mas extremamente raras na prática, permitindo a execução de um comando específico sob um UID de qualquer usuário, exceto root, um atacante que tenha permissão para executar esse comando pode contornar a limitação estabelecida e executar o comando com privilégios de root. Para contornar a limitação, basta tentar executar o comando especificado nas configurações com UID "-1" ou "4294967295", o que resultará em sua execução com UID 0.
Por exemplo, se nas configurações houver uma regra que permita a qualquer usuário executar o programa /usr/bin/id sob qualquer UID:
myhost ALL = (ALL, !root) /usr/bin/id
ou uma variante que permita a execução apenas para um usuário específico, bob:
myhost bob = (ALL, !root) /usr/bin/id
O usuário pode executar "sudo -u ‘#-1’ id" e o utilitário /usr/bin/id será executado com privilégios de root, apesar da proibição explícita nas configurações. O problema se deve à omissão de valores especiais "-1" ou "4294967295", que não causam a troca de UID, mas como o sudo já está sendo executado sob root, a comando alvo também é executado com privilégios de root, sem troca de UID.
Nas distribuições SUSE e openSUSE sem a especificação da regra "NOPASSWD" a vulnerabilidade , já que no sudoers, por padrão, está ativado o modo "Defaults targetpw", onde é feita a verificação de UID na base de senhas com a solicitação de senha do usuário alvo. Para esses sistemas, a ataque pode ser realizado apenas na presença de regras do tipo:
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
O problema foi corrigido no lançamento . A correção também está disponível na forma de . Nas distribuições, a vulnerabilidade já foi corrigida em , , , , e . No momento da redação da notícia, o problema permanece sem solução em e . A vulnerabilidade foi descoberta por pesquisadores de segurança da Apple.
Fonte: opennet.ru
