Utilizadores do Linux sem privilégios de root mas com UID> INT_MAX podem executar qualquer comando.

Uma conta de utilizadores com poucos privilégios na maioria dos sistemas operacionais Linux com valor UID maior do que 2147483647 pode executar qualquer comando systemctl não autorizado – graças a uma vulnerabilidade descoberta recentemente.

A vulnerabilidade reside no PolicyKit (também conhecido como polkit) – um application-level toolkit para sistemas operativos semelhantes ao Unix que define políticas, manipulação de privilégios em todo o sistema.

Esta toolkit fornece também uma maneira para os processos não privilegiados comunicarem com comandos privilegiados, tal como o comando “sudo”, que não concede permissão root a um processo no geral mas permite executá-lo em modo privilegiado.

O problema, identificado como CVE-2018-19788, impacta a versão 0.115 do PolicyKit, que vem pré-instalada nas distribuições Linux mais populares, incluindo Red Hat, Debian, Ubuntu e CentOS.

É possível explorar esta vulnerabilidades devido à validação “deficiente” do PolicyKit a solicitações de permissão para qualquer utilizadores com poucos privilégios mas com UID maior que INT_MAX.

INT_MAX é uma constante em programação e que define o valor máximo que uma variável inteira pode guardar, que é igual a 2147483647 0x7FFFFFFF em hexadecimal).

Utilizadores criados com um UID maior do que o valor INT_MAX fará com que o componente PolicyKit execute qualquer commando systemctl com sucesso.

O investigador Rich Mirch, no Twitter como “0xm1rch”, também lançou um exploit como prova de conceito (PoC) para demonstrar a exploração da falha com sucesso num utilizadores com UID 4000000000 atribuído.

UID_INT_MAX

 

A Red Hat recomendou para que os administradores de sistemas não permitissem UIDs ou UIDs negativos maior

 


Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *