Uma vulnerabilidade que esteve presente por 12 anos no polkit permitiu a obtenção de privilégios de root 

Alguns dias atrás, veio a notícia de que A equipe de pesquisa da Qualys descobriu vulnerabilidade de corrupção de memória no polkit pkexec, um programa SUID raiz que é instalado por padrão em todas as principais distribuições Linux.

Esta vulnerabilidade facilmente explorável permitiu que qualquer usuário sem privilégios obtivesse privilégios totais de root em um host vulnerável, explorando essa vulnerabilidade em sua configuração padrão.

polkit (anteriormente conhecido como PolicyKit) é um componente para controle de privilégios em todo o sistema em sistemas operacionais do tipo Unix. Ele fornece uma maneira organizada para que processos não privilegiados se comuniquem com processos privilegiados, além disso, também é possível usar o polkit para executar comandos com privilégios elevados usando o comando pkexec seguido pelo comando que se pretende executar (com permissão de root).

Sobre vulnerabilidade

Vulnerabilidade encontra-se em pkexec, tão seu código contém um erro de manipulação de ponteiro, alguns dos quais acabam referenciando áreas de memória que não deveriam. Ao explorar essa falha, é possível obter privilégios de administrador quase que instantaneamente.

Catalogada como CVE-2021-4034, a vulnerabilidade recebeu uma pontuação CVSS de 7,8 e a equipe do Qualys explicou em uma postagem no blog que:

A falha pkexec abre a porta para privilégios de root para um invasor. Pesquisadores da Qualys, disse ele, mostraram a exploração de instalações padrão do Ubuntu, Debian, Fedora e CentOS, e outras distribuições Linux também são consideradas vulneráveis.

“A exploração bem-sucedida desta vulnerabilidade permite que qualquer usuário sem privilégios obtenha privilégios de root no host vulnerável. Os pesquisadores de segurança da Qualys conseguiram verificar a vulnerabilidade de forma independente, desenvolver uma exploração e obter privilégios totais de root nas instalações padrão do Ubuntu, Debian, Fedora e CentOS. Outras distribuições Linux são provavelmente vulneráveis ​​e exploráveis. Essa vulnerabilidade está oculta há mais de 12 anos e afeta todas as versões do pkexec desde seu primeiro lançamento em maio de 2009 (confirme c8c3d83, "Adicionar um comando pkexec(1)").

“Assim que nossa equipe de pesquisa confirmou a vulnerabilidade, a Qualys se comprometeu com a divulgação responsável da vulnerabilidade e coordenou com fornecedores e distribuições de código aberto para anunciar a vulnerabilidade”.

O problema ocorre quando a função main() por pkexec processar argumentos de linha de comando e que arg é zero. A função ainda tenta acessar a lista de argumentos e acaba tentando usar um rgvvoid (vetor ARGument de strings de argumentos de linha de comando). Como resultado, a memória é lida e gravada fora dos limites, que um invasor pode explorar para injetar uma variável de ambiente que pode fazer com que um código arbitrário seja carregado.

O fato de essas variáveis ​​poderem ser reintroduzidas torna o código vulnerável. Pelo menos a técnica de exploração oferecida pelo Qualys (injetar a variável GCONV_PATH no ambiente pkexec para executar uma biblioteca compartilhada como root) deixa rastros nos arquivos de log.

Em um comunicado de segurança, a Red Hat emitiu a seguinte declaração:

"A Red Hat está ciente de uma vulnerabilidade encontrada no pkexec que permite que um usuário autenticado execute um ataque de elevação de privilégio."

“O principal risco para os clientes é a possibilidade de um usuário sem privilégios obter privilégios administrativos nos sistemas afetados. O invasor deve ter acesso de login ao sistema de destino para realizar o ataque."

Cabe mencionar que a vulnerabilidade já havia sido identificada em 2013 e foi descrito em detalhes em uma postagem no blog, mesmo que nenhuma PoC tenha sido fornecida:

"Lol, escrevi sobre essa vulnerabilidade do polkit em 2013. Não consegui encontrar um caminho de exploração real, mas identifiquei a causa raiz."

Finalmente, se você estiver interessado em saber disso, você pode consultar os detalhes no link a seguir


Deixe um comentário

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

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.