As Os pesquisadores de segurança da Qualys identificaram uma vulnerabilidade crítica (CVE-2021-3156) no utilitário sudo, que é projetado para organizar a execução de comandos em nome de outros usuários.
Vulnerabilidade permite acesso não autenticado com privilégios de root. O problema pode ser usado por qualquer usuário, independentemente da presença nos grupos do sistema e da presença de uma entrada no arquivo / etc / sudoers.
O ataque não requer a digitação da senha do usuário, ou seja, a vulnerabilidade pode ser usada por uma pessoa externa para elevar os privilégios no sistema depois que a vulnerabilidade foi comprometida em um processo sem privilégios (incluindo aqueles iniciados com o usuário "ninguém").
Para pesquisar uma vulnerabilidade em seu sistema, simplesmente execute o comando "sudoedit -s /" e a vulnerabilidade estará presente se uma mensagem de erro começando com "sudoedit:" for exibida.
Sobre vulnerabilidade
A vulnerabilidade apareceu desde julho de 2011 e é causada por um estouro de buffer no tratamento de caracteres de escape de linha em parâmetros destinados a executar comandos no modo shell. O modo shell é habilitado especificando os argumentos "-i" ou "-s" e faz com que o comando não seja executado diretamente, mas por meio de uma chamada shell adicional com o sinalizador "-c" ("sh -c command»).
O resultado final é que quando o utilitário sudo é executado normalmente, ele escapa os caracteres especiais especificando as opções "-i" e "-s", mas quando o utilitário sudoedit é iniciado, os parâmetros não são escapados, como parse_args () A função define a variável de ambiente MODE_EDIT em vez de MODE_SHELL e não redefine o valor de "valid_flags".
Na sua vez, transmissão de personagem sem escape cria condições para que outro erro apareça no controlador, que remove os caracteres de escape antes de verificar as regras do sudoer.
O manipulador analisa incorretamente a presença de um caractere de barra invertida sem escapar no final da linha, considera que esta barra invertida escapa mais um caractere e continua a ler os dados além do limite da linha, copiando-os no buffer "user_args" e sobrescrevendo as áreas da memória fora do buffer.
E é mencionado que ao tentar manipular os valores na linha de comando sudoedit, o invasor pode conseguir a sobreposição de uma fila regravável nos dados que afetam o andamento posterior do trabalho.
Além de criar um exploit, ele simplifica o fato de que o invasor tem controle total sobre o tamanho do buffer user_args, que corresponde ao tamanho de todos os argumentos passados, e também controla o tamanho e o conteúdo dos dados gravados fora do buffer usando variáveis ambientais.
Os pesquisadores de segurança da Qualys conseguiram preparar três exploits, cujo trabalho se baseia na reescrita do conteúdo das estruturas sudo_hook_entry, service_user e def_timestampdir:
- Ao abortar sudo_hook_entry, um binário chamado "SYSTEMD_BYPASS_USERDB" pode ser executado como root.
- Substituir service_user conseguiu executar código arbitrário como root.
- Substituindo def_timestampdir, foi possível liberar o conteúdo da pilha sudo, incluindo variáveis de ambiente, no arquivo / etc / passwd e obter a substituição do usuário com privilégios de root.
Os investigadores mostraram que os exploits funcionam para obter privilégios de root completos no Ubuntu 20.04, Debian 10 e Fedora 33.
Vulnerabilidade pode ser explorado em outros sistemas operacionais e distribuições, mas a verificação dos pesquisadores foi limitada ao Ubuntu, Debian e Fedora, além disso, é mencionado que todas as versões do sudo 1.8.2 a 1.8.31p2 e 1.9.0 a 1.9.5p1 nas configurações padrão são afetadas. Solução sugerida no sudo 1.9.5p2.
Os investigadores notificar os desenvolvedores com antecedência distribuidores que já lançaram atualizações de pacotes de forma coordenada: Debian, RHEL, Fedor, Ubuntu, SUSE / openSUSE, Arch Linux, Slackware, Gentoo e FreeBSD.
Finalmente se você estiver interessado em saber mais sobre isso sobre a vulnerabilidade, você pode verificar os detalhes no link a seguir.
Seja o primeiro a comentar