Avançar para o conteúdo principal
BlogSegurançaLinode Security Digest 21 - 28 de Janeiro de 2023

Linode Security Digest 21 - 28 de Janeiro de 2023

Linode Security Digest

No resumo desta semana, iremos discutir:

  • Como o Sudoedit pode editar ficheiros arbitrários;
  • Conselhos de segurança Drupal e Git; e 
  • Uma vulnerabilidade de negação de serviço em HAProxy.

Sudoedit pode editar ficheiros arbitrários

ID CVE: CVE-2023-22809

Sudo é um programa que permite a um administrador de sistemas dar a utilizadores seleccionados a capacidade de executar comandos como raiz. Synacktiv descobriu esta vulnerabilidade. Uma questão de contornar a política de sudoers pode levar a uma escalada de privilégios, utilizando o sudoedit para editar ficheiros não autorizados. As versões afectadas do Sudo variam de 1.8.0 a 1.9.12p1.

Enquanto utilizam o sudoedit, os utilizadores seleccionam o seu utilizador de edição utilizando 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 ficheiros a editar. No entanto, a injecção de um "extra"." no argumento das variáveis do ambiente autorizado pode alterar esta lista e levar a um aumento dos privilégios editando qualquer outro ficheiro com os privilégios do utilizador alvo.

Detecção

A vulnerabilidade pode ser detectada executando o seguinte comando como um utilizador com o ficheiro a ser concedido para editar, tal como /etc/custom/service.conf, listado no ficheiro /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 actualizar para a versão corrigida, é também possível mitigar a vulnerabilidade adicionando as variáveis ambientais afectadas à lista env_delete deny quando se utiliza o sudoedit.

Defaults!SUDOEDIT            env_delete+="SUDO_EDITOR VISUAL EDITOR"
Cmnd_Alias SUDOEDIT = sudoedit /etc/custom/service.conf
user                                              ALL=(ALL:ALL) SUDOEDIT

Drupal conselhos de segurança

Drupal lançou alertas de segurança para resolver vulnerabilidades que afectam vários produtos. Um atacante poderia explorar estas vulnerabilidades para aceder a informação sensível. A CISA encoraja os utilizadores e administradores a reverem os seguintes conselhos de segurança de Drupal e a aplicarem as actualizações necessárias.

Drupal Core - Divulgação de informação

Código de conselheiros de segurança: SA-CORE-2023-001

Os utilizadores com acesso à edição de conteúdos poderiam ver os metadados dos itens de mídia aos quais não estão autorizados a aceder devido à verificação de acesso impróprio da entidade no módulo Media Library. A atenuação da vulnerabilidade é possível porque os meios inacessíveis só são visíveis para os utilizadores que já podem editar o conteúdo, incluindo um campo de referência de meios. 

Independentemente de Drupal antes de 9.4.x estar em fim de vida, recomenda-se a actualização para as últimas versões, incluindo Drupal 10.0.2, Drupal 9.5.2, e Drupal 9.4.10.

Navegador da entidade - Divulgação de informação

Código de conselheiros de segurança: SA-CONTRIB-2023-002

Os utilizadores podem seleccionar entidades dos campos de referência de entidades utilizando um widget personalizado de navegador de entidades do módulo Navegador de Entidades. Esta vulnerabilidade permite aos utilizadores com acesso à edição de conteúdos verem os metadados das entidades a que não estão autorizados a aceder, uma vez que o módulo não verifica correctamente o acesso da entidade. A vulnerabilidade pode ser mitigada pelo facto de as entidades inacessíveis só serem visíveis aos utilizadores que já podem editar o conteúdo utilizando o Navegador de Entidades. Para corrigir a vulnerabilidade, se utilizar o módulo Entity Browser para Drupal 9 ou 10, actualize o Entity Browser para a versão 8.x-2.9.

Bloco da Mediateca - Divulgação de Informação

Código de conselheiros de segurança: SA-CONTRIB-2023-003

O módulo Media Library Block permite aos utilizadores renderizar entidades de meios de comunicação num bloco. A verificação do acesso impróprio aos meios de comunicação pelo módulo pode resultar em utilizadores verem os meios de comunicação aos quais não estão autorizados a aceder se um bloco contendo itens de comunicação restritos estiver na página. Mitigar este acesso não autorizado através da remoção de blocos que façam referência a meios de comunicação social com restrições de acesso. Se utilizar o módulo Bloco da Biblioteca de Meios de Comunicação para Drupal 9 ou 10, recomenda-se a sua actualização para a versão 1.0.4 para corrigir o problema.

Elemento API do formulário da biblioteca multimédia - Divulgação de informações

Código de conselheiros de segurança: SA-CONTRIB-2023-004

O módulo Media Library Form API Element permite aos utilizadores utilizar a biblioteca multimédia em formulários personalizados sem o widget da biblioteca multimédia. Devido à verificação incorrecta do acesso à entidade pelo módulo, os utilizadores com acesso para editar conteúdo podem ver metadados de itens multimédia aos quais não estão autorizados a aceder. Mitigar a vulnerabilidade tornando os media inacessíveis apenas visíveis para os utilizadores que já podem editar o conteúdo que inclui um campo de referência de media. Se o módulo Media Library Form API Element estiver nas versões 8.x-1.* ou 2.x para Drupal 9 ou 10, recomenda-se a atualização do módulo para a versão 2.0.6.

Conselhos de segurança Git

Uma auditoria de segurança do código fonte para Git revelou várias vulnerabilidades, incluindo duas de gravidade crítica que poderiam permitir aos atacantes executar código arbitrário depois de explorarem com sucesso as fraquezas do excesso 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.

Excesso de pilha em "arquivo Git", "log -format -git" que conduz ao RCE

ID CVE: CVE-2022-41903

git log pode exibir os commits num 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(), é 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, o que expande o especificador de formato para um ficheiro. O overflow de número inteiro pode causar a execução de código remoto ao escrever código arbitrário na memória.

Alternativas

Recomenda-se a actualização de Git para a versão mais recente, que corrige completamente a vulnerabilidade. Se a actualização não for aplicável, os utilizadores não devem executar o arquivo de Git num repositório não confiável. Se o arquivo de git for exposto via git daemon, executar git config -global daemon.uploadArch false para desactivar o comando.

gitattributes parsing integer overflow

ID CVE: CVE-2022-23521

Git permite aos utilizadores definir atributos para os caminhos adicionando um ficheiro .gitattributes ao repositório, que contém um conjunto de padrões de ficheiros e atributos que devem ser definidos para aqueles ficheiros que correspondem ao padrão. Algumas condições podem fazer com que o excesso de números inteiros aconteça quando se analisam os atributos:

  • quando há um número excessivo de padrões de percurso;
  • quando existem numerosos atributos para um único padrão;
  • quando os nomes dos atributos declarados são extensos.

Os transbordos podem ser desencadeados quando o ficheiro .gitattributes feito faz parte do historial do commit. Linhas com mais de 2KB são divididas silenciosamente ao analisar gitatributos a partir de um ficheiro, mas não a partir do índice. Como resultado, pode ocorrer falha quando o ficheiro 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.

Alternativas

Não é publicado nenhum trabalho aplicável. A única alternativa é actualizar Git para a última versão corrigida listada.

Negação de vulnerabilidade de serviço em HAProxy

ID CVE: CVE-2023-0056

HAProxy é um equilibrador de carga de servidor de alta disponibilidade para aplicações HTTP. Esta vulnerabilidade existe devido à falha do manuseamento inesperado da bandeira na função http_wait_for_response(), o que pode resultar no colapso 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 de Patch nas versões 2.5.11, 2.6.8, e 2.7.2. No entanto, as versões fixas para 2.0.x a 2.4.x têm ainda de ser lançadas.

Comentários

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *