Uma vulnerabilidade no sudo que permite elevação de privilégios sob regras específicas

No utilitário Sudo, utilizado para executar comandos em nome de outros usuários, foi identificada uma vulnerabilidade (CVE-2019-14287), 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 não é explorável, 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 Sudo 1.8.28. A correção também está disponível na forma de patch. Nas distribuições, a vulnerabilidade já foi corrigida em Debian, EPEL para RHEL/CentOS, SUSE/openSUSE, Ubuntu, Gentoo e FreeBSD. No momento da redação da notícia, o problema permanece sem solução em RHEL e Fedora. A vulnerabilidade foi descoberta por pesquisadores de segurança da Apple.

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