Tráfego em 30/Out/24: 349.264 page views/mês - 141.802 usuários/mês - 5.441 assinantes

Bug no ‘sudo’: usuários Linux podem se tornar superusuários

Da Redação
27/01/2021

A equipe que dá manutenção ao utilitário Sudo, que permite aos administradores Linux delegar direitos de superusuário a outros usuários, publicou um patch para uma vulnerabilidade grave, descoberta pelos pesquisadores da Qualys. Veja no vídeo abaixo a prova de conceito dessa vulnerabilidade.

A vulnerabilidade é um estouro de pilha (buffer overflow), registrado como CVE-2021-3156 e apelidado de Baron Samedit. A descoberta aconteceu há duas semanas e a correção foi liberada hoje, quarta-feira, 27 de janeiro, com o lançamento do Sudo 1.9.5p2. Aproveitando-se dessa falha, um invasor com acesso a uma conta de poucos privilégios pode obter direitos de superusuário, mesmo se a conta não estiver na lista /etc/sudoers, o arquivo de configuração que controla os usuários com permissão para acessar os comandos su e sudo.

Veja isso
Alerta para vulnerabilidade em sistemas de imagem da GE Healthcare
Falha na inicialização do GRUB2 no Linux põe em risco PCs e servidores

Como os desenvolvedores do Sudo explicaram, quando o utilitário executa um comando no modo shell usando a opção de linha de comando -s ou -i, os caracteres especiais nos argumentos do comando são escapados com uma barra invertida. Antes de avaliar a política sudoers (de não esperar nenhum caractere de escape), o plugin de política remove esses caracteres dos argumentos se o comando for executado no modo shell.

Como resultado, o comando será lido após o último caractere da linha se terminar com uma barra invertida sem escape. Normalmente, esse erro seria inofensivo, já que o Sudo evita todas as barras invertidas nos argumentos do comando.

No entanto, devido a outro erro, desta vez no código de análise da linha de comando, é possível executar sudoedit com as opções -s ou -i, com um sinalizador indicando que o modo shell está ativado. Como o comando não é realmente executado, o Sudo não deixa escapar nenhum caractere especial. Finalmente, o código que decide se os caracteres de escape devem ser removidos não verifica se o comando está realmente sendo executado – mas apenas vê o sinalizador do shell definido. Essa incompatibilidade leva a uma vulnerabilidade de segurança.

A vulnerabilidade existe no Sudo desde julho de 2011 e afeta todas as versões do utilitário nos últimos dez anos. De acordo com os especialistas da Qualys, eles conseguiram reproduzir a vulnerabilidade e desenvolver diversas variantes de exploits para Ubuntu 20.04 (Sudo 1.8.31), Debian 10 (Sudo 1.8.27) e Fedora 33 (Sudo 1.9.2), porém, outros operacionais sistemas e distribuições.

Com agências internacionais

Compartilhar: