Falha no sudo permitia alterar qualquer arquivo

Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas.

Uma falha (já listada em CVE-2023-22809) foi identificada no pacote sudo, que é usado para executar comandos em nome de outros usuários. O problema permitia que um usuário local editasse qualquer arquivo no sistema. Assim, seria possível obter direitos de root alterando /etc/shadow ou scripts do sistema. Portanto, essa falha no sudo permitia alterar praticamente qualquer arquivo.

Para explorar a vulnerabilidade, o usuário deve ter o direito de executar o utilitário sudoedit ou “sudo” com o sinalizador “-e” em sudoers.

O bug menciona que sudo (su “do”) permite que um administrador do sistema delegue autoridade para dar a certos usuários (ou grupos de usuários) a capacidade de executar alguns (ou todos) comandos como root ou outro usuário durante a execução. fornece uma trilha de auditoria dos comandos e seus argumentos.

Falha no sudo permitia alterar qualquer arquivo

A vulnerabilidade se deve à falta de manipulação adequada dos caracteres “–” ao analisar as variáveis de ambiente que determinam o programa chamado para editar o arquivo.

No sudo, a sequência “–” é usada para separar o editor e os argumentos da lista de arquivos que estão sendo editados. Um invasor pode adicionar “–file” às variáveis de ambiente SUDO_EDITOR , VISUAL ou EDITOR após o caminho para o editor, o que fará com que o arquivo especificado seja editado com privilégios elevados sem verificar as regras de acesso de arquivo do usuário.

Em relação aos detalhes da vulnerabilidade, é mencionado o seguinte:

Quando executado como sudo -e ou sudoedit, o sudo pode ser usado para editar arquivos com privilégios enquanto executa o editor como um usuário sem privilégios. O arquivo de política sudoers determina se um usuário pode ou não editar os arquivos especificados. O comportamento esperado é que o módulo de política sudoers retorne um vetor de argumento para o front-end sudo contendo o editor para executar junto com os arquivos a serem editados, separados por um argumento “–”.

A sequência de eventos é a seguinte:

  1. O front-end sudo envia uma solicitação de verificação de política para o módulo sudoers indicando que o usuário executou o sudoedit e inclui a lista de arquivos a serem editados.
  2. O módulo de política sudoers usa o arquivo sudoers (ou LDAP) para determinar se o usuário pode editar os arquivos.
  3. Se a verificação de política for bem-sucedida, o módulo de política sudoers escolherá um editor com base nas variáveis SUDO_EDITOR, VISUAL e EDITOR no ambiente do usuário. 
  4. O módulo sudoers constrói um novo vetor de argumento que consiste no editor selecionado. Se o editor contiver opções de linha de comando, ele será dividido em vários argumentos.
  5. Um separador “–” é adicionado ao vetor de argumento, seguido pela lista de arquivos a serem editados. Esse vetor de argumento é retornado ao front-end do sudo.
  6. O front-end do sudo usa o separador “–” para determinar quais arquivos editar. Cópias temporárias de arquivos são feitas com o proprietário definido para o usuário chamador.
  7. O front-end do sudo constrói um novo vetor de argumento que consiste em todos os elementos antes do separador “–” (o editor) seguido pelos caminhos do arquivo temporário. O novo vetor de argumento é executado como o usuário que o chama.
  8. Os arquivos temporários são copiados de volta para seu local original e as versões temporárias são excluídas.
  9. Existe uma vulnerabilidade se o editor especificado pelo usuário também contiver um argumento “–”. Isso fará com que o sudo front-end trate tudo após o argumento “-” no editor como um arquivo a ser editado, mesmo que a política de sudoers não o permita.

A vulnerabilidade está presente desde o branch 1.8.0 e corrigida no patch sudo 1.9.12p2. O lançamento de atualizações de pacotes nas distribuições pode ser visto nas páginas a seguir: DebianUbuntuGentooRHELSUSEFedoraArchFreeBSD e NetBSD.

Por fim, é mencionado que, como solução alternativa de segurança, você pode desativar o processamento das variáveis de ambiente SUDO_EDITOR, VISUAL e EDITOR especificando em sudoers:

Defaults!sudoedit env_delete+="SUDO_EDITOR VISUAL EDITOR"

Mais informações no link: https://www.synacktiv.com/

Share This Article
Follow:
Jornalista com pós graduações em Economia, Jornalismo Digital e Radiodifusão. Nas horas não muito vagas, professor, fotógrafo, apaixonado por rádio e natureza.
Sair da versão mobile