Vulnerabilidade en sudo que permite a escalada de privilexios cando se usan regras específicas

Na utilidade Sudo, usado para organizar a execución de comandos en nome doutros usuarios, identificado vulnerabilidade (CVE-2019-14287), que permite executar comandos con dereitos de root, se hai regras na configuración de sudoers nas que na sección de verificación de ID de usuario despois da palabra clave "TODO" hai unha prohibición explícita de executar con dereitos de root ("... (TODOS, !raíz) ..." ). A vulnerabilidade non aparece nas configuracións predeterminadas nas distribucións.

Se sudoers ten regras válidas, pero extremadamente raras na práctica, que permiten a execución dun determinado comando baixo o UID de calquera usuario que non sexa root, un atacante que teña autoridade para executar este comando pode ignorar a restrición establecida e executar o comando con dereitos de raíz. Para evitar a limitación, só intente executar o comando especificado na configuración co UID "-1" ou "4294967295", o que levará á súa execución co UID 0.

Por exemplo, se hai unha regra na configuración que outorga a calquera usuario o dereito de executar o programa /usr/bin/id baixo calquera UID:

myhost TODO = (TODOS, !root) /usr/bin/id

ou unha opción que permite a execución só para un usuario específico bob:

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

O usuario pode executar "sudo -u '#-1' id" e a utilidade /usr/bin/id lanzarase como root, a pesar da prohibición explícita na configuración. O problema é causado por pasar por alto os valores especiais "-1" ou "4294967295", que non levan a un cambio no UID, pero como o propio sudo xa se está a executar como root, sen cambiar o UID, o comando de destino tamén é lanzado con dereitos de root.

Nas distribucións SUSE e openSUSE, sen especificar "NOPASSWD" na regra, hai unha vulnerabilidade non explotable, xa que nos sudoers o modo "Defaults targetpw" está activado por defecto, que comproba o UID coa base de datos de contrasinais e pídelle que introduza o contrasinal do usuario de destino. Para tales sistemas, só se pode levar a cabo un ataque se existen regras da forma:

myhost TODO = (TODOS, !root) NOPASSWD: /usr/bin/id

Problema solucionado na versión Sudo 1.8.28. A corrección tamén está dispoñible no formulario parche. Nos kits de distribución, a vulnerabilidade xa foi solucionada Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD. No momento de escribir este artigo, o problema segue sen solucionarse RHEL и Fedora. A vulnerabilidade foi identificada polos investigadores de seguridade de Apple.

Fonte: opennet.ru

Engadir un comentario