Na digressão desta semana, discutiremos:
- Como o Sudoedit pode editar arquivos arbitrários;
- Conselhos de segurança Drupal e Git; e
- Uma vulnerabilidade de negação de serviço em HAProxy.
Sudoedit pode editar arquivos arbitrários
ID CVE: CVE-2023-22809
Sudo é um programa que permite a um administrador de sistema dar a usuários selecionados a capacidade de executar comandos como root. O Synacktiv descobriu esta vulnerabilidade. Uma questão de contornar a política de sudoers pode levar a uma escalada de privilégios usando o sudoedit para editar arquivos não autorizados. As versões afetadas do Sudo variam de 1.8.0 a 1.9.12p1.
Ao utilizar o sudoedit, os usuários selecionam seu usuário de edição usando variáveis de ambiente, tais como SUDO_EDITOR, VISUAL, e EDITOR. O conteúdo destas variáveis estende o comando real passado para a função sudo_edit(). A “—" é suposto determinar a lista de arquivos a serem editados. No entanto, a injeção de um extra".—" no ambiente autorizado variáveis podem alterar esta lista e levar a uma escalada de privilégios editando qualquer outro arquivo com os privilégios do usuário alvo.
Detecção
A vulnerabilidade pode ser detectada executando o seguinte comando como um usuário com o arquivo sendo concedido para edição, como /etc/custom/service.conf, listado no arquivo /etc/sudoers.
$ cat /etc/sudoers
user ALL=(ALL:ALL) sudoedit /etc/custom/service.conf
[...]
$ EDITOR='vim -- /etc/passwd' sudoedit /etc/custom/service.conf
Mitigação
Além de atualizar para a versão corrigida, também é possível mitigar a vulnerabilidade adicionando as variáveis ambientais afetadas à lista env_delete deny ao usar o sudoedit.
Defaults!SUDOEDIT env_delete+="SUDO_EDITOR VISUAL EDITOR"
Cmnd_Alias SUDOEDIT = sudoedit /etc/custom/service.conf
user ALL=(ALL:ALL) SUDOEDIT
Conselhos de segurança Drupal
Drupal liberou alertas de segurança para resolver vulnerabilidades que afetam vários produtos. Um atacante poderia explorar essas vulnerabilidades para acessar informações sensíveis. A CISA incentiva os usuários e administradores a reverem os seguintes alertas de segurança do Drupal e aplicarem as atualizações necessárias.
Drupal Core - Divulgação de informações
Código de conselheiros de segurança: SA-CORE-2023-001
Os usuários com acesso para editar conteúdo poderiam ver os metadados dos itens de mídia que não estão autorizados a acessar devido à verificação de acesso impróprio da entidade no módulo Media Library. A atenuação da vulnerabilidade é possível porque a mídia inacessível só é visível aos usuários que já podem editar o conteúdo, incluindo um campo de referência de mídia.
Independentemente de Drupal antes de 9.4.x estar em fim de vida, é recomendado atualizar para as versões mais recentes, incluindo Drupal 10.0.2, Drupal 9.5.2, e Drupal 9.4.10.
Navegador da entidade - Divulgação de informações
Código de conselheiros de segurança: SA-CONTRIB-2023-002
Os usuários podem selecionar entidades dos campos de referência de entidades usando um widget de navegador de entidades personalizado do módulo Navegador de Entidades. Esta vulnerabilidade permite aos usuários com acesso para editar conteúdo ver os metadados das entidades às quais não estão autorizados a acessar, já que o módulo não verifica o acesso da entidade adequadamente. A vulnerabilidade pode ser mitigada pelo fato de que as entidades inacessíveis só serão visíveis aos usuários que já podem editar o conteúdo usando o Navegador de Entidades. Para corrigir a vulnerabilidade, se estiver usando o módulo Entity Browser para Drupal 9 ou 10, atualize o Entity Browser para a versão 8.x-2.9.
Bloco da Biblioteca de Mídia - Divulgação de informações
Código de conselheiros de segurança: SA-CONTRIB-2023-003
O módulo Bloco da Biblioteca de Mídia permite aos usuários renderizar entidades de mídia em um bloco. A verificação de acesso impróprio à mídia pelo módulo pode resultar em usuários vendo a mídia que não estão autorizados a acessar se um bloco contendo itens de mídia restritos estiver na página. Mitigação deste acesso não autorizado através da remoção de blocos referentes a itens de mídia com restrições de acesso. Se estiver usando o módulo Bloco da Biblioteca de Mídia para Drupal 9 ou 10, é recomendado atualizá-lo para a versão 1.0.4 para corrigir o problema.
Formulário da Biblioteca de Mídia API Elemento - Divulgação de informações
Código de conselheiros de segurança: SA-CONTRIB-2023-004
O formulário da Biblioteca de Mídia API O módulo Elemento permite aos usuários usar a biblioteca de mídia em formulários personalizados sem o Widget da Biblioteca de Mídia. Devido à verificação de acesso impróprio da entidade pelo módulo, os usuários com acesso para editar conteúdo poderiam ver metadados de itens de mídia aos quais não estão autorizados a acessar. Mitigar a vulnerabilidade tornando as mídias inacessíveis somente visíveis aos usuários que já podem editar o conteúdo que inclui um campo de referência de mídia. Se o Formulário da Biblioteca de Mídia API Elementos versão 8.x-1.*, ou 2.x para Drupal 9 ou 10, é recomendado atualizar o módulo para a versão 2.0.6.
Git conselhos de segurança
Uma auditoria de segurança do código fonte para Git revelou várias vulnerabilidades, incluindo duas de severidade crítica que poderiam permitir aos atacantes executar código arbitrário após explorar com sucesso as fraquezas do estouro de buffer baseado em pilha. Ambas as vulnerabilidades críticas são corrigidas nas versões Git v2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6, v2.36.4, v2.37.5, v2.38.3, e v2.39.1.
Transbordamento de pilha em "arquivo Git", "log -format -git" que leva ao RCE
ID CVE: CVE-2022-41903
git log pode exibir os commits em um formato arbitrário com um -format specifier. git archive com o gitattributo de exportação-substância também tem esta funcionalidade. Quando os operadores de preenchimento são processados, uma variável de tamanho_t é indevidamente armazenada como um int na função pretty.c format_and_pad_commit(), ela é então adicionada como um offset a uma chamada memcpy() seguinte. Os atacantes podem iniciar o overflow executando git log -format=... para invocar a formatação de commit ou executando git archive com o atributo export-subst, que expande o especificador de formato para um arquivo. O estouro de número inteiro pode causar a execução de código remoto ao escrever código arbitrário na memória.
Soluções
É recomendado atualizar Git para a versão mais recente, o que corrige completamente a vulnerabilidade. Se a atualização não for aplicável, os usuários não devem executar o arquivo de Git em um repositório não confiável. Se o arquivo git for exposto através do daemon git, execute git config -global daemon.uploadArch false para desativar o comando.
gitattributes parsing integer overflow
ID CVE: CVE-2022-23521
Git permite aos usuários definir atributos para os caminhos adicionando um arquivo .gitattributes ao repositório, que contém um conjunto de padrões de arquivos e atributos que devem ser definidos para aqueles arquivos que correspondem ao padrão. Algumas condições podem fazer com que o excesso de números inteiros aconteça ao analisar os atributos:
- quando há um número excessivo de padrões de caminho;
- quando há inúmeros atributos para um único padrão;
- quando os nomes dos atributos declarados são extensos.
Os transbordos podem ser acionados quando o arquivo .gitattributes feito faz parte do histórico de comprometimento. Linhas maiores que 2KB são divididas silenciosamente ao analisar gitatributos de um arquivo, mas não do índice. Como resultado, pode ocorrer falha quando o arquivo existe no índice, na árvore de trabalho, ou em ambos. A vulnerabilidade pode levar à leitura e escrita arbitrária da cabeça, resultando na execução remota do código.
Soluções
Não é publicado nenhum trabalho aplicável. A única alternativa é atualizar Git para a última versão corrigida listada.
Negação de vulnerabilidade de serviço em HAProxy
ID CVE: CVE-2023-0056
O HAProxy é um balanceador de carga de servidor de alta disponibilidade para aplicações HTTP. Esta vulnerabilidade existe devido à falha do manuseio inesperado da bandeira na função http_wait_for_response(), o que pode resultar no travamento do processo. Como resultado, a vulnerabilidade permite que um atacante execute um ataque de negação de serviço.
A versão vulnerável do HAProxy varia de 2.0.0 a 2.7.0. Vulnerabilidades do patch nas versões 2.5.11, 2.6.8, e 2.7.2. Entretanto, as versões fixas para 2.0.x a 2.4.x ainda não foram lançadas.
Comentários